2014-09-18 62 views
0

我有一個需要自定義的文本框。 我希望邊框只顯示在文本框的底部(而不是矩形,我希望文本下方只有一個無邊框文本框)。更改uitextfield的外觀

我試了一下:

viewDidLoad,我試圖改變.borderStyle屬性,然後發現我可以在IB 我看着.layer財產。 試圖設置一個背景圖像,該圖像將在底部顯示爲白色,但沒有backgroundImage屬性或textField.view 我試圖創建一個視圖並將其追加到textField.subViews (UIView[])

我試過子分類UITextField,沒有用(因爲我不知道用什麼方法來修改,如果有的話)。

回答

0

你需要做的是子類UITextField並製作你自己的版本。 覆蓋您將用於實例化它的任何方法,例如initWithFrame或initWithCoder。在這些方法中,您可以添加一個高度爲1像素的UIView和一個寬度爲文本框大小的UIView作爲子視圖,不要忘記設置視圖的顏色!

所以要明確使用的初始化與框架,如果你是通過調用自己的實例吧:

[[UITextField alloc] initWithFrame:frame] 

或者您可以覆蓋

- (void)awakeFromNib 
1

直答案是這是不可能的只有在邊境底端。但是如果你故意尋找這種行爲,你可以嘗試以下想法。

  • 將UITextfield放置在您的視圖控制器中。
  • 選擇邊框樣式爲無邊框。
  • 現在選擇UIView並將其放置在視圖控制器中。
  • 將視圖的X,Y值底部設置爲您的文本框。
  • 並且還設置與您的文本框相同的寬度,並將高度設置爲1px。
  • 根據需要設置視圖的背景顏色。

這個想法是創建一個uiview,它看起來像是在UITextField底部的一行。請參閱下面的示例屏幕。 UITextField with only bottom border