视图没有越来越多



我需要设计一个带有圆角和阴影的卡之类的视图。我有一个容器视图,在内部的另一个视图中,就像我所附加的图像一样。但是,当我为外部容器视图施加角半径时,半径是设置的,除了具有内部视图的区域。如果我将其制作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

我正在为我的问题附上图像。查看图像

您有两个视图,一个超级视图及其子视图,您的目标处于冲突中。

  • 一方面,您希望监督的角半径影响其子视图。只有当监督掩盖到其范围时,才会发生这种情况。

  • ,另一方面,您希望Supperiew的阴影出现。只有当Supperiew 没有掩码到其边界时,才会发生这种情况。

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

解决方案很容易。使用三个视图!将阴影制作和剪裁的工作分配在两个视图之间。

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

  • 下一个视图是其子视图。它的大小完全相同,并且也具有角半径,并且 dos 掩码到边界。这是快船。

  • 下一个视图是内容,子视图的子视图。它将被第二视图掩盖,以便转角半径会影响它。

相关内容

  • 没有找到相关文章

最新更新