如果设置为YES,UIView layer.masksToBounds正在做什么?

Ond*_*rej 40 iphone uiview

谁知道?我找到了一些答案,但是太复杂而且太深了.我需要一个简单的答案.

Noa*_*oon 128

如果该masksToBounds属性设置为YES,则该层的任何超出其边界的子图层将被剪切到这些边界.在这种情况下,将层视为其子层的窗口; 窗口边缘以外的任何东西都不可见.如果masksToBounds为NO,则不会发生剪切,并且任何延伸到图层边界外的子图层都将完整可见(只要它们不会超出任何启用了屏蔽的超级图层的边缘).

  • 好解释。非常感谢 (2认同)
  • 就像当你添加阴影时 (2认同)

Jay*_*ant 9

故事板中的输入设计

在此输入图像描述

@IBOutlet weak var purpleView: UIView!  // view inside super view
@IBOutlet weak var yellowView: UIView!  // super view

override func viewDidLoad() {
    super.viewDidLoad()

    yellowView.layer.cornerRadius = 20
    yellowView.layer.masksToBounds = true
    
    // Do any additional setup after loading the view.
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

maskToBounds = true 后的输出。超级视图剪辑子视图在超级视图之外的部分。