Objective C 为父视图设置阴影
Posted
技术标签:
【中文标题】Objective C 为父视图设置阴影【英文标题】:Objectivec set shadow to parent view 【发布时间】:2015-07-09 08:27:56 【问题描述】:我想给父视图设置阴影。但我希望子视图保持不变。
我现在要做的是
parentView.layer.shadowRadius = 0.8;
parentView.layer.shadowOpacity = 0.3;
parentView.layer.shadowOffset = CGSizeMake(1.0, 1.4);
但是,如果我这样做,子视图也会改变。有没有办法设置阴影但保持子视图相同。
谢谢
【问题讨论】:
您尝试将layer.masksToBounds = YES;
用于子视图。
@bluesky AFAIK 这不会做任何事情。
【参考方案1】:
您的 parentView 是否透明?我已经建立了一个简单的项目并使用了你的代码。我更改了一些值以更好地看到阴影。看起来是这样的:
如您所见 - 子视图上没有阴影。 parentView 的背景颜色设置为白色。当我将它设置为清除颜色时,就会发生这种情况。我加了边框证明parentView还在:
Apple Docs 证明这一点:
图 A-7 显示了同一示例层的几个不同版本 应用了红色阴影。左边和中间的版本包括一个 背景颜色,所以阴影只出现在边框的周围 层。但是,右边的版本不包括背景 颜色。在这种情况下,阴影将应用于图层的内容, 边框和子图层。
【讨论】:
以上是关于Objective C 为父视图设置阴影的主要内容,如果未能解决你的问题,请参考以下文章
NSLayoutConstraint - 无法将子视图框架设置为父视图边界
Objective C - 从视图控制器设置 UIView 子类的标签属性