我在UIView上应用了背景阴影,使它看起来像是在背景(即MapView)的“顶部”,但是即使在更宽的iPhone 6和6+屏幕上,阴影也无法完全扩展虽然我将其应用于UIView。

viewDidLoad中,我使用以下代码将阴影应用于UIView:

CALayer *layer = self.view_detailview.layer;
layer.shadowOffset = CGSizeMake(1, 1);
layer.shadowColor = [[UIColor blackColor] CGColor];
layer.shadowRadius = 4.0f;
layer.shadowOpacity = 0.80f;
layer.shadowPath = [[UIBezierPath bezierPathWithRect:layer.bounds] CGPath];


在我的情节提要中,我设置了一个约束,以强制UIView宽度与Superviews宽度匹配,这可以正常工作而没有任何问题或警告。但是,当我在6或6+版本上运行我的应用程序时,我发现阴影并未完全扩展,如下所示:



我可以通过将UIView的背景色设置为引人注目的颜色并看到它充满屏幕来验证UIView确实使用了整个宽度。

最佳答案

问题在于,当视图尚未正确布局时,您正在使用bounds值。

viewDidLayoutSubviews(如果使用视图控制器)或layoutSubviews(如果使用独立视图)中设置阴影。在第二种情况下,不要忘记调用[super layoutSubviews]

或者根本不更改shadowPath。没有那条线行不通吗?

关于ios - 阴影未完全扩展UIView的宽度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26090078/

10-13 04:02