對(duì)系統(tǒng)自帶的UITextField進(jìn)行自定義

textfield,顧名思義,輸入文本框,如果是在storyboard直接拖一個(gè)這樣的控件到view上,則只會(huì)顯示一個(gè)文本框,但是我們有更多地需求,比如說(shuō)在文本框的左邊設(shè)置一個(gè)圖像,這樣用戶看到這個(gè)文本框的時(shí)候能夠憑直覺(jué)憑經(jīng)驗(yàn)知道這個(gè)文本框是用來(lái)輸入什么內(nèi)容的。那么我們可以這樣設(shè)置文本框:

// 設(shè)置賬號(hào)文本框左邊視圖

// 如果是系統(tǒng)控件中的子控件通常位置是由系統(tǒng)決定,我們不能設(shè)置,但是我們可以設(shè)置它的尺寸。

UIImageView *leftV = [[UIImageView alloc] initWithImage:image];

// 設(shè)置圖片居中

leftV.contentMode = UIViewContentModeCenter;

CGRect frame = leftV.frame;

frame.size.width += 10;

leftV.frame = frame;

// 設(shè)置文本框的左邊視圖

textField.leftView = leftV;

// 必須要設(shè)置左邊視圖模式,總是顯示模式

textField.leftViewMode = UITextFieldViewModeAlways;

這里要非常注意:一定要記住設(shè)置leftViewMode這個(gè)屬性,否則,文本框左邊的圖像無(wú)法顯示。

也可以改變占位文字的顏色,比如說(shuō)有這樣一個(gè)需求,當(dāng)文本框處于正在編輯狀態(tài)時(shí),占位文字由灰色(默認(rèn))變?yōu)榘咨瑒t可以這樣設(shè)置:

- (BOOL)becomeFirstResponder

{

[self setValue:[UIColor whiteColor] forKeyPath:placeholderTextlable.textColor];

return [super becomeFirstResponder];

}

這樣似乎有點(diǎn)不太和諧,此時(shí)占位文字顏色是變白了,但是光標(biāo)卻是藍(lán)色的(默認(rèn)),那么我們就有必要對(duì)光標(biāo)顏色進(jìn)行改變,這個(gè)改變最好在初始化的適合設(shè)置:

- (void)awakeFromNib

{

// 設(shè)置光標(biāo)顏色

self.tintColor = [UIColor whiteColor];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容