我在 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];
在我的 Storyboard 中,我设置了一个约束来强制 UIView 宽度与 superviews 宽度相匹配,该宽度可以正常工作,没有任何问题或警告。但是当我在 6 或 6+ 上运行我的应用程序时,我发现阴影没有像这样完全扩展:
我可以通过将其背景颜色设置为明显的颜色并看到它填满屏幕来验证 UIView 确实使用了整个宽度。
最佳答案
问题是当 View 尚未正确布局时您正在使用边界值。
在 viewDidLayoutSubviews
(如果使用 View Controller )或 layoutSubviews
(如果使用独立 View )中设置阴影。在第二种情况下,不要忘记调用 [super layoutSubviews]
。
或者根本不更改 shadowPath
。没有那条线它不工作吗?
关于ios - 阴影没有完全扩展 UIView 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26090078/