视图不圆[重复]
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 隐藏到它的边界时才会发生这种情况。
另一方面,您希望超级视图的阴影出现。仅当父视图不掩盖其边界时才会发生这种情况。
所以你想要的是逻辑上的不可能性。
解决方法很简单。使用三个视图!在两个视图之间划分阴影制作和剪辑工作。
最外面的视图有圆角半径和阴影,并且不遮盖边界。这是影子制造者。
下一个视图是它的子视图。它的大小完全相同,并且它也具有圆角半径,并且它确实屏蔽了边界。这是剪刀。
下一个视图是内容,即子视图的子视图。它将被第二个视图掩盖,因此角半径会影响它。
【讨论】:
以上是关于视图不圆[重复]的主要内容,如果未能解决你的问题,请参考以下文章