实现登录注册时,根据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;

}

第一次写东西,希望大家指正,个人水平很菜。也写的很麻烦。

你可能感兴趣的:(实现登录注册时,根据textField的输入改变按钮的背景)