實現登錄注冊時,根據textField的輸入改變按鈕的背景

大家都知道,好多app登錄注冊時,當textField有輸入時,按鈕顏色會高亮,沒有輸入,或者刪除所有輸入時,按鈕又變為灰色;其實這樣可以直接在textField的一個代理方法中進行判斷,直接上代碼吧。

方法一:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

{

if (string.length == 0) {

if (self.passWordTextField.text.length - 1 == 0) {

self.ensureBtn.backgroundColor = [UIColor grayColor];

}

else self.ensureBtn.backgroundColor = [UIColor redColor];

}

else self.ensureBtn.backgroundColor = [UIColor redColor];

return YES;

}

這里只寫了一個TextField時的判斷,

有疑問的可能是self.passWordTextField.text.length - 1 == 0為啥還需要判斷的原因是,當你輸入一些字符時,只要刪除 ,string.length == 0,只有增加時string.length == 1。

為啥減一的原因是,當你刪除最后一個字符時,按下按鈕,self.passWordTextField.text.length還保存是1的狀態,因此進行了減一操作,

方法二:

第二種思路:和按鈕一樣,給文本框添加事件的方式.因為文本框也是繼續UIControl.所以能夠直接添加.

給賬號添加事件

[self.accontTextFaddTarget:selfaction:@selector(textChange)forControlEvents:UIControlEventEditingChanged];

給密碼添加事件

都讓它們響應一個方法

[self.pwdTextFaddTarget:selfaction:@selector(textChange)forControlEvents:UIControlEventEditingChanged];

}

?xml version="1.0" encoding="UTF-8"?

第二種思路:

當文本框開始編輯時調用,這樣可以時刻堅聽文本框的內容

- (void)textChange{

賬號和密碼都有值時,登錄按鈕才能夠點擊.

第一種判斷方法:

/***

if (self.accontTextF.text.length && self.pwdTextF.text.length) {

self.loginBtn.enabled = YES;

}else{

self.loginBtn.enabled = NO;

}

*/

第二種判斷方法

self.loginBtn.enabled=self.accontTextF.text.length&&self.pwdTextF.text.length;

}

第一次寫東西,希望大家指正,個人水平很菜。也寫的很麻煩。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容