masksToBounds到底是何方神圣

新年第一天上班不知不覺就到了,今天剛到公司同事就問maskToBounds具體是做什么的?為什么cornerRadius都設置過圓角曲率了,還需要再設置maskToBounds(寫過的代碼這2項都是同時出現)???
  關于這個問題我給出了我的思路:默認情況下,cornerRadius只會影響背景顏色而不影響背景圖片或子圖層,必須得設置maskToBounds屬性才會截取圖層里面所有的東西。

效果如下:


Simulator Screen Shot Feb 15, 2016, 09.28.53.png

** 左邊的就是設置過cornerRadius和maskToBounds的,右邊的僅設置過cornerRadius,未設置maskToBounds! **

測試核心代碼如下(左邊是subView1,右邊是subView2,紅色圖層未設置cornerRadius和maskToBounds)

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var subView1: UIView!
    @IBOutlet weak var subView2: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.subView1.layer.cornerRadius = 20
        self.subView2.layer.cornerRadius = 20
        
        self.subView1.layer.masksToBounds = true
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

** 其中masksToBounds可在Interface Builder勾選Clip Subviews實現同樣的效果。**

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容