【发布时间】:2017-09-20 08:54:21
【问题描述】:
我创建了一个简单的文本字段来试验cornerRadius 和 maskToBounds,并认为如果我想圆角文本字段的角,除了设置图层的角半径之外,我还需要将图层的 maskToBounds 设置为 true,像这样:
myTextField.layer.borderWidth = 1
myTextField.layer.cornerRadius = 3
myTextField.layer.masksToBounds = true
myTextField.textAlignment = .center
但是,当我注释掉 myTextField.layer.masksToBounds = true 时,文本字段仍然以圆角呈现在屏幕上。
那么究竟什么时候需要使用 maskToBounds,为什么这里不需要呢? 整个屏幕的背景颜色为白色,textField 内没有任何其他元素的图像。
【问题讨论】:
-
我认为您在主视图中添加直接添加文本字段,因此不需要掩码,但您添加一个视图,然后在视图中添加文本字段,然后强制掩码。 “这取决于masksToBounds,它确定子图层是否被裁剪到接收器的边界。因此,如果是,则将与图层边界匹配的隐式蒙版应用于图层,包括cornerRadius属性的效果。”
-
抱歉,您能改写一下吗?我认为您的观点很好,但我无法完全理解您在第一句话中所说的内容。您的意思是不需要 maskToBounds 因为我将文本字段添加到主视图(顺便说一句,我是:))。但是其余的“但是您添加一个视图然后在视图中添加文本字段然后强制掩码”是什么意思?
-
这意味着您在视图中添加文本字段,然后您没有设置 masktobounds 文本字段不存在圆角。
-
好的,你能给我一些常用的例子,说明你什么时候可以在另一个视图(不是主视图)中包含一个文本字段?请随意将其放入答案表格中,以便我接受。感谢您的帮助。
标签: ios uiview uitextfield calayer