改变uitextfield的外观

时间:2014-09-18 15:43:17

标签: ios xcode swift uitextfield

我有一个我需要自定义的文本字段。 我希望边框只显示在文本字段的底部(而不是矩形,我想要一个无边框的文本字段,文本下只有一行)。

我尝试了什么:

viewDidLoad中,我尝试更改.borderStyle属性,然后注意到我可以在IB中 我查看了.layer属性。 试图设置一个背景图像,它是白色的,底部有一条线,但没有backgroundImage属性或textField.view 我尝试创建一个视图并将其附加到textField.subViews (UIView[])

我试过了UITextField的子类,但没有用(因为我不知道将修改放在哪个方法,如果有的话)。

2 个答案:

答案 0 :(得分:1)

直接的答案是不可能只在底部设置边框。但如果你故意寻找这种行为,你可以尝试以下想法。

  • 将UITextfield放在viewcontroller中。
  • 选择bordertyle为无边框。
  • 现在选择UIView并将其放在视图控制器中。
  • 将视图的X,Y值底部设置为Textfield。
  • 并且还将宽度设置为与Textfield相同,并将高度设置为1px。
  • 根据需要设置视图的背景颜色。

这个想法是创建一个uiview,它看起来像是UITextField底部的一行。请参见下面的示例屏幕。 UITextField with only bottom border

答案 1 :(得分:0)

你需要做的是Subclass UITextField并制作你自己的版本。 覆盖您将用于实例化的方法,例如initWithFrame或initWithCoder。在这些方法中,您可以将高度为1像素的UIView和文本字段大小的宽度添加到文本域底部作为子视图,不要忘记设置视图颜色!

所以要明确使用init with frame如果你自己通过调用它来实例化它:

[[UITextField alloc] initWithFrame:frame]

或者你可以覆盖

- (void)awakeFromNib