当前位置: 编程技术>移动开发
本页文章导读:
▪给UITableViewCell平添UITextField 给UITableViewCell添加UITextField
UITextField *textField = [[UITextField alloc] initWithFrame: CGRectMake(90, 12, 200, 25)];
textField.clearsOnBeginEditing = NO;//鼠标点上时,不清空
[textField setDelegate: self];
.........
▪ 在UITableViewCell的UITextField中,点 return时,光标移到上一个UITextField 在UITableViewCell的UITextField中,点 return时,光标移到下一个UITextField
- (IBAction)textFieldDone:(id)sender {
//[sender resignFirstResponder];
UITableViewCell *cell = (UITableViewCell *)[[sender superview] superview];//sende.........
▪ 从异常页面的角度看用户体验 从错误页面的角度看用户体验
原文出处:http://raychase.iteye.com/blog/1174370阶段一:系统错误信息乃至错误堆栈被抛到页面上。这是最原始的容错界面,在现在的网站中依然偶尔出现,这是糟.........
[1]给UITableViewCell平添UITextField
来源: 互联网 发布时间: 2014-02-18
给UITableViewCell添加UITextField
UITextField *textField = [[UITextField alloc] initWithFrame: CGRectMake(90, 12, 200, 25)]; textField.clearsOnBeginEditing = NO;//鼠标点上时,不清空 [textField setDelegate: self]; textField.returnKeyType = UIReturnKeyDone; [textField addTarget:self action:@selector(textfieldDone:) forControlEvents:UIControlEventEditingDidEndOnExit];//把DidEndOnExit事件响应为 textfieldDone: 方法 [cell.contentView addSubview: textField];
- (IBAction)textfieldDone:(id)sender { [sender resignFirstResponder]; }
[2] 在UITableViewCell的UITextField中,点 return时,光标移到上一个UITextField
来源: 互联网 发布时间: 2014-02-18
在UITableViewCell的UITextField中,点 return时,光标移到下一个UITextField
- (IBAction)textFieldDone:(id)sender { //[sender resignFirstResponder]; UITableViewCell *cell = (UITableViewCell *)[[sender superview] superview];//sender是文本字段,它是表单元视图的内容视图的一个子视图,[cell.contentView addSubview: textField]; UITableView *table = (UITableView *)[cell superview]; NSIndexPath *textFieldIndexPath = [table indexPathForCell:cell]; NSUInteger row = [textFieldIndexPath row]; row++; if (row >= kNumberOfEditableRows) { row = 0; } NSIndexPath *newPath = [NSIndexPath indexPathForRow:row inSection:0]; UITableViewCell *nextCell = [self.tableView cellForRowAtIndexPath:newPath]; UITextField *nextField = nil; for (UIView *oneView in nextCell.contentView.subviews) { if ([oneView isMemberOfClass:[UITextField class]]) { nextField = (UITextField *)oneView; } } [nextField becomeFirstResponder]; }
UITextField *textField = [[UITextField alloc] initWithFrame: CGRectMake(90, 12, 200, 25)]; textField.clearsOnBeginEditing = NO;//鼠标点上时,不清空 [textField setDelegate: self]; //textField.returnKeyType = UIReturnKeyDone; [textField addTarget:self action:@selector(textFieldDone:) forControlEvents:UIControlEventEditingDidEndOnExit];//把DidEndOnExit事件响应为 textfieldDone: 方法 [cell.contentView addSubview: textField];
[3] 从异常页面的角度看用户体验
来源: 互联网 发布时间: 2014-02-18
从错误页面的角度看用户体验
原文出处:
http://raychase.iteye.com/blog/1174370
阶段一:
系统错误信息乃至错误堆栈被抛到页面上。
这是最原始的容错界面,在现在的网站中依然偶尔出现,这是糟糕的和不安全的,相信现在没有一个负责任的UCD((User Centered Design)是指以用户为中心的设计)专家会容忍这种现象的发生。
阶段二:
引导到简单的错误提示页面,例如:“系统忙”、“页面不存在”和“出错了”,或者一个简单的弹出框提示用户。无论界面是美观还是简陋,这种方式都是原始的,并且是易于实现的。这是网站UCD的底线,如果您希望您的网站简单和质朴,那么这样实现并没有什么不好。
阶段三:
提示页面不仅仅是告知用户错误,还能够给出一定的建议,或给出一定的引导,以帮助用户在出错的情形下更快地修正错误,找到正确的页面。
这在相对复杂一些的网站上出现,通常网站只给出简单的提示或引导,例如只给出搜索框建议用户搜索他所需的东西。
阶段四:
如果页面比较复杂,那么设计人员可能希望页面某个部分的错误不会影响大局,例如,一个聚合了若干个portlet的大页面,对于某个portlet的错误,不影响页面其他部分的展示——这时候,通常最好的容错办法是保持安静,即“No news is good news”,用户不需要知道系统忙,也不想知道页面的某个出错的位置本该展示某某内容的;用户最希望依旧能看到一个完整的页面,只是其中出错的部分被隐藏起来了,他并未发觉。
这里需要实现两点:
1、网站风险分散的容错性设计,对于某个子功能的错误不影响到整个页面的运营;
2、错误的隐藏,界面少了某一区域,依然能够准确排版展示。
原文出处:
http://raychase.iteye.com/blog/1174370
阶段一:
系统错误信息乃至错误堆栈被抛到页面上。
这是最原始的容错界面,在现在的网站中依然偶尔出现,这是糟糕的和不安全的,相信现在没有一个负责任的UCD((User Centered Design)是指以用户为中心的设计)专家会容忍这种现象的发生。
阶段二:
引导到简单的错误提示页面,例如:“系统忙”、“页面不存在”和“出错了”,或者一个简单的弹出框提示用户。无论界面是美观还是简陋,这种方式都是原始的,并且是易于实现的。这是网站UCD的底线,如果您希望您的网站简单和质朴,那么这样实现并没有什么不好。
阶段三:
提示页面不仅仅是告知用户错误,还能够给出一定的建议,或给出一定的引导,以帮助用户在出错的情形下更快地修正错误,找到正确的页面。
这在相对复杂一些的网站上出现,通常网站只给出简单的提示或引导,例如只给出搜索框建议用户搜索他所需的东西。
阶段四:
如果页面比较复杂,那么设计人员可能希望页面某个部分的错误不会影响大局,例如,一个聚合了若干个portlet的大页面,对于某个portlet的错误,不影响页面其他部分的展示——这时候,通常最好的容错办法是保持安静,即“No news is good news”,用户不需要知道系统忙,也不想知道页面的某个出错的位置本该展示某某内容的;用户最希望依旧能看到一个完整的页面,只是其中出错的部分被隐藏起来了,他并未发觉。
这里需要实现两点:
1、网站风险分散的容错性设计,对于某个子功能的错误不影响到整个页面的运营;
2、错误的隐藏,界面少了某一区域,依然能够准确排版展示。
最新技术文章: