首先附上效果图介绍:
一.项目功能介绍
本篇主要说明的就是当textField 有和没有文字的时候,按钮会呈现出不同的效果。不管一个还是多个,当多个的情况下,必须所有的textField都有文字的时候,才可以执行下一步,否则就不能继续下一步,界面上可以给用户很好的提示!
二.说明一下Textfield的某个方法的使用介绍
其中这里面的最重要的处理方法如下:
#pragma mark - UITextFieldDelegate
-(void)textFieldDidBeginEditing:(UITextField *)textField {
self.isComeNext =textField.text.length;
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
self.isComeNext =textField.text.length;
}
// 每个文字的输入后textField是否接收到都需要通过这个方法判断是否可以接受
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (range.location ==0 &range.length ==1) { // 从1个字母到0个字母(删除的情况)
self.isComeNext =NO;
return YES;
}else{ // 有字母的情况
if (range.location ==0 & range.length ==0) { // 从0个字母到1个 (添加的情况)
self.isComeNext =YES;
}
self.isComeNext =YES;
return YES;
}
DDLog(@"location = %lu,length = %lu ",range.location,range.length);
return YES;
}
温馨提示:其中self.isComeNext标记按钮的不同状态去处理!
三.分析不同个数Textfield的处理,如下:
1.当只有1个 Textfield,只需要判断如下:
self.isComeNext =textField.text.length
为1种逻辑判断
2.当只有2个 Textfield,则需要判断如下:
-(void)settingNextBtnState:(UITextField *)textField {
if (textField ==self.phoneTextFeild) {
if (self.codeTextFeild.text.length) {
self.isComeNext =textField.text.length;
}else {
self.isComeNext =NO;
}
}else {
if (self.phoneTextFeild.text.length) {
self.isComeNext =textField.text.length;
}else {
self.isComeNext =NO;
}
}
}
为4种逻辑判断
3.那么思考,按照以上的思路,3个呢,4个呢 ,是否需要更多的判断,所以引入了多个的时候,用tableView去处理!只需要更改model的值,然后判断model有没有为空的情况就可以解决textField个数为2个以上的问题!
四.如何使用我的1个,2个,多个Textfield 的使用步骤
如果您的界面和我的挺像的,您就可以直接拿来用,或者继承我对应的VC,修改部分参数,实现您的功能!
五.多总结,多思考,才能成长的更快!
自己在平时开发中多留心,封装属于自己的Demo,也可以有更多的框架,乐于分享给大家去使用,去评判,我一直在路上!
有问题,欢迎加QQ:1824496534进行指导,谢谢!
下面附上我的github的地址:https://github.com/zxwIsCode/TextFieldEditeState