视图不圆[重复]

Posted

技术标签:

【中文标题】视图不圆[重复]【英文标题】:View is not getting round [duplicate] 【发布时间】:2017-11-25 13:42:45 【问题描述】:

我需要设计一个带有圆角和阴影的卡片视图。我有一个容器视图,其中另一个视图就像我附加的图像一样。但是,当我为外部容器视图半径应用角半径时,除了具有内部视图的区域外,它正在设置。如果我将其设置为 clipToBounds = true,那么它会四处走动,但阴影不会出现。所以请帮助我。

这是我的代码

    containerView.layer.masksToBounds = false
    containerView.layer.shadowColor = UIColor.black.cgColor
    containerView.layer.shadowOpacity = 0.5
    containerView.layer.shadowOffset = CGSize(width: -1, height: 1)
    containerView.layer.shadowRadius = 5
    containerView.backgroundColor = UIColor.white
    containerView.layer.cornerRadius = 20

我为我的问题附上了下面的图片。 View Image

【问题讨论】:

你能分享一些代码,甚至是你的代码所在的仓库吗? 我已经在上面添加了我的代码..提前谢谢 【参考方案1】:

你有两个视图,一个父视图和它的子视图,你的目标是冲突的。

一方面,您希望父视图的圆角半径影响其子视图。只有当 superview 隐藏到它的边界时才会发生这种情况。

另一方面,您希望超级视图的阴影出现。仅当父视图掩盖其边界时才会发生这种情况。

所以你想要的是逻辑上的不可能性。

解决方法很简单。使用三个视图!在两个视图之间划分阴影制作和剪辑工作。

最外面的视图有圆角半径和阴影,并且不遮盖边界。这是影子制造者。

下一个视图是它的子视图。它的大小完全相同,并且它具有圆角半径,并且它确实屏蔽了边界。这是剪刀。

下一个视图是内容,即子视图的子视图。它将被第二个视图掩盖,因此角半径会影响它。

【讨论】:

以上是关于视图不圆[重复]的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell 的子视图不能是圆形的

css圆角不圆和1px方案

将视图插入回收站视图 [重复]

添加第二个视图[重复]

无法在视图上创建索引,因为视图未绑定架构 [重复]

如何使用视图绑定从片段更改父活动中的视图[重复]