关闭

iOS开发-UITableView-4(多选)

标签: ios开发uitableview
412人阅读 评论(0) 收藏 举报
分类:
1. 要做到这一点,最好的方法是将每个选定行复选标记。 你可以做到这一点通过在选定的UITableViewCell实例设置accessoryType到 要取消选择该行,将其设回 对于这些cell/行被选中(比如说,在点击一个按钮),只需遍历表的单元格中寻找或者,在“没有选择”管理的NSSet或类似的表视图的委托 
2. 杰夫LAMARCHE对如何在这里做这个教程: 我还没有尝试过的代码,但它一直在我的脑海里了一会儿 CodeGo.net,知道这一天会当我需要它。 
3. 使用下面的代码来设置单元格ACCESORY类型:
 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
 UITableViewCell *thisCell = [tableView cellForRowAtIndexPath:indexPath];

 if (thisCell.accessoryType == UITableViewCellAccessoryNone) {
  thisCell.accessoryType = UITableViewCellAccessoryCheckmark;
 }else{
 	thisCell.accessoryType = UITableViewCellAccessoryNone;
 }
}
- (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath {
//add your own code to set the cell accesory type.
return UITableViewCellAccessoryNone;
}

4. 我向后移植allowsMultipleSelectionDuringEditingallowsMultipleSelection从iOS5的较旧的iOS。你可以在它叉 它是在下降,只有你需要做的事情就是变化的UITableView以UDTableView(代码或界面生成器) 
5. 下列财产应该可以正常工作,如果你正在开发的iOS5.0 +应用程序
self.tableView.allowsMultipleSelection = YES;

6. 从HIG: 表views提供反馈选择列表项。具体地说,当一个项目可以被选择,则 包含项目列简要underline,当选择它表明,选择已经收到。 然后,一个动作发生:要么一个新的视图显露或行显示一个复选标记,以指示 该项目已经被选择。该行从未仍然突出显示,表视图不显示 持续的选中状态。 您需要推出自己多个选择的样式,无论是与邮件一样,在你的cell的复选标记辅助。 
7. 如果你试图做类似邮件的多重选择(删除邮件,例如),那么你很可能将不得不自己管理所有的选择。多行选择不说是在iPhone上的标准。邮件解决这个复选标记,以指示哪些行被选中。 
8. 伙计们对于多重选择,你只需要
self.tableView.allowsMultipleSelection = YES;
在viewDidLoad中和
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
 UITableViewCell *tableViewCell = [tableView cellForRowAtIndexPath:indexPath];
 tableViewCell.accessoryView.hidden = NO; 
 // if you don't use custom image tableViewCell.accessoryType = UITableViewCellAccessoryCheckmark;
}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
 UITableViewCell *tableViewCell = [tableView cellForRowAtIndexPath:indexPath];
 tableViewCell.accessoryView.hidden = YES;
 // if you don't use custom image tableViewCell.accessoryType = UITableViewCellAccessoryNone;
}

9. 注意:这不会的iOS 4 +的工作。这是一个private的,恒定的。做到这一点。 如果你不打算提交您的应用程序在App Store,你可以通过在你的UITableViewController委托调用多行编辑模式:
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
 return 3; // Undocumented constant
}

10. 蓝色突出显示的行作为一个列是否被选择实际上是按照HIG页121气馁的指标。复选标记会做的伎俩。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
 int selectedRow = indexPath.row;
 cout << "selected Row: " << selectedRow << endl;
 UITableViewCell *indexPathForCell = [tableView cellForRowAtIndexPath:indexPath];
 if (indexPathForCell.accessoryType == UITableViewCellAccessoryNone) {
  indexPathForCell.accessoryType = UITableViewCellAccessoryCheckmark;
 } else {
  indexPathForCell.accessoryType = UITableViewCellAccessoryNone;
 }
}
然后添加您的排列或怎么过您想保存这些被选择的数据。 
11. 我正在寻找的问题,BHAVIN Chitroda的答案sovled它但除了保持复选标记,因为它是在滚动。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
  if ( [array indexOfObject:indexPath] == NSNotFound ) {
   [array addObject:indexPath];
   cell.accessoryType = UITableViewCellAccessoryCheckmark;
  } else {
   [array removeObject:indexPath];
   cell.accessoryType = UITableViewCellAccessoryNone;
  }
}
加法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
// Your code here
.
.
.
 if ( [array indexOfObject:indexPath] == NSNotFound ) {
  cell.accessoryType = UITableViewCellAccessoryNone;
 } else {
  cell.accessoryType = UITableViewCellAccessoryCheckmark;
 }
 return cell;
}

12. 测试用的iOS4.3-6.0
-(void)searchDisplayControllerDidBeginSearch:(UISearchDisplayController *)controller {
 if ([controller.searchResultsTableView respondsToSelector:@selector(allowsMultipleSelectionDuringEditing)]) {
  controller.searchResultsTableView.allowsMultipleSelectionDuringEditing = YES;
 }
 else {
  controller.searchResultsTableView.allowsSelectionDuringEditing = YES;
 }
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
 return UITableViewCellAccessoryCheckmark;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:56399次
    • 积分:2955
    • 等级:
    • 排名:第12305名
    • 原创:33篇
    • 转载:7篇
    • 译文:218篇
    • 评论:1条
    最新评论