创建阴影视图

Posted

技术标签:

【中文标题】创建阴影视图【英文标题】:Creating a shadow view 【发布时间】:2012-03-04 22:40:59 【问题描述】:

我有一个 UIView 设置为“阴影”,我将此视图放在 UIImageView 后面以创建阴影效果。唯一的问题是,如果你降低图像的 alpha,你可以看到 UIView 的白色部分。如何隐藏除阴影之外的整个 UIView?将 backgroundColor 设置为 clearColor 会隐藏视图和阴影,这无济于事。谢谢。

shadow.alpha = 0.95;
shadow.layer.cornerRadius = 10;
shadow.layer.shadowColor = [UIColor blackColor].CGColor;
shadow.layer.shadowOpacity = 1.0;
shadow.layer.shadowRadius = 10.0;
shadow.layer.shadowOffset = CGSizeMake(0, 4);

【问题讨论】:

非常感谢........因为这段代码帮我做了一个影子。 【参考方案1】:

您是否尝试过修改 UIImageView 的图层以拥有阴影,而不是拥有两个视图?

如果这不能提供所需的输出,黑色 UIView 是否有效?如果您发布屏幕截图和所需的效果,也许我可以提供更多帮助。

【讨论】:

我听取了您的建议,解决了错误,并让它以这种方式工作。感谢您的帮助!【参考方案2】:

我认为使用内置影子工具无法完成您尝试的操作。正如您所发现的,为了让 Quartz 有轮廓自动阴影,必须绘制一些东西。 (在这种情况下,它是视图的背景圆角。)

如果您为阴影视图的图层指定一个显式的圆形阴影路径,这将消除视图实际绘制任何内容的需要。但是,阴影本身似乎是通过填充阴影路径然后模糊和平移生成的图像来构建的,因此您最终会得到与视图的黑色背景基本相同的效果。

我同意 Ryan Oksenhorn 的观点,即您最好使用图像视图本身。如果你在那里添加一个阴影,它的不透明度会随着视图的下降而下降,但这可能会更好。您真的要淡化图像并留下无实体的阴影吗?

【讨论】:

【参考方案3】:

你怎么设置

shadow.backgroundColor = [UIColor blackColor];
shadow.alpha = 1.0;

【讨论】:

以上是关于创建阴影视图的主要内容,如果未能解决你的问题,请参考以下文章

添加阴影后提高视图质量

带有切出段和阴影的 UIView

为笔尖启动的视图添加边框和阴影

禁用 UIPopoverViewController 内容视图上的阴影

删除阴影 SwiftUI 旁边的空格

如何在我的布局顶部创建外部阴影?