2017-11-25 419 views
-1

我需要设计一个像圆角和阴影一样的视图。我有一个容器视图,里面有另一个视图,就像我附加的图像。但是当我为外容器视图应用圆角半径时,除了具有内部视图的区域外,半径已经设置。如果我将它制作成clipToBounds = true,那么它会遍体鳞伤,但阴影不会到来。所以plz帮助我在这里。视图没有越过

这里是我的代码

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

+0

能否请您分享一些代码或者即使你的代码是回购? –

+0

我已经在上面添加了我的代码。提前感谢 – Hyder

回答

0

你有两种观点,超级观点及其子视图,与你的目标有冲突。

  • 一方面,您希望超视图的角半径影响其子视图。只有当超级视图掩盖其界限时才会发生这种情况。

  • 另一方面,你想要超级观点的阴影出现。只有在超级观点不对其界限掩盖时才会发生这种情况。

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

该解决方案很简单。使用三个意见!在两个视图之间划分阴影和裁剪的工作。

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

  • 下一个视图是它的子视图。它是完全一样的大小,并且它也圆角半径和它确实面具界限。这是快船。

  • 下一个视图是子视图的内容,子视图。它将被第二个视图遮挡,所以角落的半径会影响它。