新年第一天上班不知不覺就到了,今天剛到公司同事就問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實現同樣的效果。**