Ios 阴影未完全扩展UIView的宽度
我在UIView上应用了一个背景阴影,使其看起来像是“在”背景之上(这是一个地图视图),但是阴影并没有完全延伸到更宽的iPhone 6和6+屏幕上,即使我应用它的UIView确实如此 在Ios 阴影未完全扩展UIView的宽度,ios,objective-c,uiview,Ios,Objective C,Uiview,我在UIView上应用了一个背景阴影,使其看起来像是“在”背景之上(这是一个地图视图),但是阴影并没有完全延伸到更宽的iPhone 6和6+屏幕上,即使我应用它的UIView确实如此 在viewDidLoad中,我使用以下代码将阴影应用于UIView: CALayer *layer = self.view_detailview.layer; layer.shadowOffset = CGSizeMake(1, 1); layer.shadowColor = [[UIColor blackColo
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的宽度与SuperView的宽度相匹配,而SuperView的宽度没有任何问题或警告。但当我在6或6+上运行我的应用程序时,我发现阴影并没有像这样完全扩展:
我可以通过将UIView的背景色设置为明显的颜色并看到它填充屏幕来验证UIView是否使用了全宽。问题在于,当视图尚未正确布局时,您正在使用边界值 在
viewDidLayoutSubviews
(如果使用视图控制器)或layoutSubviews
(如果使用独立视图)中设置阴影。在第二种情况下,不要忘记调用[super layoutSubviews]
或者根本不更改
阴影路径。没有那条线不行吗?是的!这就成功了。我将它从viewdiload
移动到viewdilayoutsubviews
,效果非常好。它确实可以在没有阴影路径的情况下工作,但是如果没有阴影路径,它的性能似乎会受到影响。