iOS 提升交互之根据多个UITextField的编辑状态改变按钮状态
2017-05-27 16:13
281 查看
最近仿照支付宝登录根据账号密码TextField编辑状态改变登录按钮状态的效果封装了一个方法. 在UITextFieldDelegate的
方法中调用即可达到想要的效果:
封装的代码:
调用实例:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
方法中调用即可达到想要的效果:
封装的代码:
- (BOOL)getButtonEnableByCurrentTF:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string tfArr:(NSArray *)tfArr;{ if (string.length) {// 文本增加 NSMutableArray *newTFs = [NSMutableArray arrayWithArray:tfArr]; [newTFs removeObject:textField]; for (UITextField *tempTF in newTFs) { if (tempTF.text.length==0) return NO; } }else{// 文本删除 if (textField.text.length-range.length==0) {// 当前TF文本被删完 return NO; }else{ NSMutableArray *newTFs = [NSMutableArray arrayWithArray:tfArr]; [newTFs removeObject:textField]; for (UITextField *tempTF in newTFs) { if (tempTF.text.length==0) return NO; } } } return YES; }
调用实例:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ // 提升交互:动态设置按钮可行不可行 NSArray *tfs = @[_accountTF, _pswTF]; if ([self getButtonEnableByCurrentTF:textField shouldChangeCharactersInRange:range replacementString:string tfArr:tfs]) { [_loginButton changeStyleToStandard];// 置为可用 }else{ [_loginButton ZS_standardDisable];// 置为不可用 } return YES; }
相关文章推荐
- XZ_iOS之购物车—点击右上角“编辑”按钮,改变所有cell的状态
- iOS 判断页面中的该填项是否填完整,改变按钮状态的方法
- ios 让UITextField(输入框)直接进入编辑状态
- cell 的状态改变接口 --- 通过此接口可以获得是否点击了减号按钮 ,是否是编辑状态 ,是否是正常状态(未编辑)
- iOS UITableViewCell添加按钮 点击按钮改变按钮状态之坑
- iOS 之点击按钮改变状态的图片
- 判断页面中的该填项是否填完整,改变按钮状态 iOS
- iOS学习笔记--如何实现登录按钮显示状态的改变
- iOS 之点击按钮改变状态的图片
- iOS - UITableViewCell 改变编辑状态图片
- 用JS改变表单的编辑状态
- 写一个方法进行各种属性的更新,而不要每个界面设置改变都改变一个属性。就是点击应用或确定按钮时调用这个更新属性的方法,遍历所有(控制对象属性的)界面控件的状态(值),进行属性修改和刷新。
- 转--iOS开发学习 根据Debug和Release状态变化来屏蔽日志输出
- IOS 改变导航栏返回按钮的标题
- iOS根据Debug和Release状态的变化来屏蔽日志输出
- 改变工具栏按钮状态的方法
- IOS 改变导航栏返回按钮的标题
- Editor窗体根据编辑状态设定控件状态
- 当用户点击编辑按钮时input变成可编辑状态
- IOS 改变导航栏返回按钮的标题