UITextField边框不是剪切

时间:2017-03-22 13:53:51

标签: swift uiview uitextfield border

我几乎肯定之前已经问过这个问题,但我搜索了差不多一个小时但没找到任何东西

这是我的代码:

textField.font = UIFont.systemFont(ofSize: 12.0)
textField.layer.borderWidth = 0.9
textField.placeholder = "border is 0.9 clip is false"
textField.layer.borderColor = UIColor.black.cgColor
textField.borderStyle = UITextBorderStyle.roundedRect
textField.returnKeyType = UIReturnKeyType.done

enter image description here

textField.clipsToBounds设置为truefalse无关紧要,边框不会四舍五入。但是,如果我更改背景颜色,它将填充它,因为它具有圆角边框,请参见下面的图像

enter image description here

如果你放大,你会发现它没有完全填满角落

如果我设置textField.layer.borderWidth = 0.1那么我会有一个很好的roundRect,但是它们的边界必须是一条细线。见下图: enter image description here

再次设置clipToBounds = true不会有任何区别。

编辑:

所以答案是做textField.layer.cornerRadius = 5。但后来我想知道UITextBorderStyle.roundedRect那时做了什么?!

1 个答案:

答案 0 :(得分:3)

尝试textField.layer.cornerRadius = 5

cornerRadius - 为图层背景绘制圆角时使用的半径。动画。

var cornerRadius: CGFloat { get set }

  

将半径设置为大于0.0的值会导致图层为   开始在其背景上绘制圆角。默认情况下   圆角半径不适用于图层内容中的图像   属性;它仅适用于背景颜色和边框   层。但是,将masksToBounds属性设置为true会导致   要剪裁到圆角的内容。

     

此属性的默认值为0.0。

更新:

  

但后来我想知道UITextBorderStyle.roundedRect在做什么呢?

基本相同的东西,但默认半径。也许它被某处覆盖了。在Attribute Inspector中查看您的IB属性,边框样式属性:

enter image description here