iOS优化登陆注册界面的用户体验用例
作者:网络转载 发布时间:[ 2016/7/7 11:38:52 ] 推荐标签:软件测试 测试用例
先看下初步优化过的效果
优化的几个方面:
1.校验是否是手机号
- (BOOL)isValidateMobile:(NSString *)mobile
{
NSString *phoneRegex = @"^[1][3,4,5,8,7][0-9]{9}$";
NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex];
return [phoneTest evaluateWithObject:mobile];
}
2.校验完成手机号后光标移动到密码输入框
3.密码输入框密文、长显示叉号
4.监听三个输入框,只有全部合法才激活登陆按钮的点击方法和显示方式
部分关键代码:
注:这里全部使用的是xib拖出来的界面,使用的是KVC
[_phone addTarget:self action:@selector(changePhone) forControlEvents:UIControlEventEditingChanged];
[_password addTarget:self action:@selector(changeAction) forControlEvents:UIControlEventEditingChanged];
[_email addTarget:self action:@selector(changeAction) forControlEvents:UIControlEventEditingChanged];
[_loginButton setEnabled:NO];
[_loginButton addTarget:self action:@selector(loginButtonAction) forControlEvents:UIControlEventTouchUpInside];
实现方法:
手机号输入的监听事件
- (void)changePhone {
if (_phone.text.length >= 11) {
if ([self isValidateMobile:_phone.text]) {
_phone.textColor = [UIColor blackColor];
[_password becomeFirstResponder];
} else {
_phone.textColor = [UIColor redColor];
}
} else {
_phone.textColor = [UIColor blackColor];
}
}
剩余两个textfield监听事件实现
- (void)changeAction {
if ((_password.text.length >= 1 && _phone.text.length >= 11 && _email.text.length >= 1) && [self isValidateMobile:_phone.text]) {
// 这里注意一般使用 enable 而不使用userInteractionEnabled 延展中重写setEnabled方法,来实现可否点击按钮的效果
[_loginButton setEnabled:YES];
} else {
[_loginButton setEnabled:NO];
}
}
这里还有一句比较关键的代码,我我使用延展实现的,因为这样不需要初始化实例对象,可以直接使用系统的方法,只是重写一下UIButton的一个方法,来实现登陆按钮的不可点击效果
// .h
#import <UIKit/UIKit.h>
@interface UIButton (enable)
@end
// .m
#import "UIButton+enable.h"
@implementation UIButton (enable)
- (void)setEnabled:(BOOL)enabled {
[super setEnabled:enabled];
if (enabled) {
self.alpha = 1.0;
} else {
self.alpha = 0.5;
}
}
@end
至此已经实现了登陆注册的基本优化。写的比较基础,希望大家指正
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11