我创建了一个简单的文本字段来试验cornerRadius和maskToBounds,并认为如果我想绕过文本字段的边角,除了设置图层的cornerRadius外,我还需要将图层的maskToBounds设置为true,像这样:
myTextField.layer.borderWidth = 1
myTextField.layer.cornerRadius = 3
myTextField.layer.masksToBounds = true
myTextField.textAlignment = .center
但是当我评论myTextField.layer.masksToBounds = true
时,屏幕上仍然显示有圆角的文字字段。
那么什么时候才有必要使用maskToBounds,为什么这里没有必要呢? 整个屏幕的背景颜色为白色,textField中没有任何其他元素的图像。
答案 0 :(得分:0)
我想,
它取决于maskToBounds,它确定子层是否被剪切到接收器的边界。因此,如果是,则将与图层边界匹配的隐式遮罩应用于图层,包括cornerRadius属性的效果。
阴影是在视图外部完成的效果,maskToBounds设置为YES将告诉UIView不要绘制任何超出其自身的内容。
对于前。
如果在具有图像内容的CALayer上设置该图像,则仍会在角半径边界外绘制图像。你可以通过将sublayer masksToBounds设置为True来解决这个问题,但是你没有设置masktobounds为true,因为阴影不会显示,因为它们会被屏蔽掉。