新年第一天上班不知不觉就到了,今天刚到公司同事就问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实现同样的效果。**
网友评论