我在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宽度匹配超级视图宽度,它可以正常工作而没有任何问题或警告。但是当我在6或6+上运行我的应用程序时,我发现阴影并没有如此完全延伸:
我可以通过将其背景颜色设置为明显且看到它填满屏幕来验证UIView是否使用全宽度。
答案 0 :(得分:9)
问题是,当视图尚未正确布局时,您正在使用边界值。
在viewDidLayoutSubviews
(如果使用视图控制器)或layoutSubviews
(如果使用独立视图)中设置阴影。在第二种情况下,请勿忘记致电[super layoutSubviews]
。
或根本不改变shadowPath
。如果没有这条线,它有用吗?