使用UITextBorderStyle.RoundedRect时删除文本字段上的边框轮廓

时间:2019-03-08 10:36:03

标签: ios uitextfield uikit border

我正在创建一个具有半透明背景颜色(40%白色)的文本字段,在该文本字段上,我将UITextBorderStyle.RoundedRect用于圆角和文本插图。这样会自动设置一个灰色边框,我要删除该边框,但是我找不到方法。

我尝试了以下方法:

  • layer.borderWidth设置为0:无效
  • layer.borderColor设置为clearColor:无效
  • layer.borderColor设置为与背景相同的颜色,但这似乎会创建一个附加边框(40%白色),该边框绘制在前一个边框(灰白色)上)一个。

我敢肯定必须有一种简单的方法来做到这一点,但我找不到它。

3 个答案:

答案 0 :(得分:1)

如果您为文本字段设置UITextBorderStyle.RoundedRect,则文本字段会将带有灰色边框的图像添加到文本字段的背景。这就是为什么图层属性不起作用的原因,因为您看到的边框不在图层上,而是其图像已添加到文本字段中。

您可以通过使用视图层次结构进行调试来进行验证。将有一个图像添加到文本字段。将使用文本字段的背景色创建带有灰色边框和capInsets的图像,以避免边框拉伸。

因此,最好的选择是将文本字段设置为UITextBorderStyle.none。然后自己创建边框。

答案 1 :(得分:0)

我认为,实现此目标的唯一方法是将边框样式设置为.none(然后自行修改)。然后,您可以设置边框样式并以所需的方式上色(或完全没有边框)。

答案 2 :(得分:0)

如果您想绕过文本框的角,请使用

YourTextField.layer.cornerRadius = 8 //或您要设置的任何值