iOS开发-UITableView-4(多选)

翻译 2015年07月10日 16:20:15
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;
}

相关文章推荐

IOS应用开发15——UITableView多选删除及样式自定

项目中要实现一个TableViewCell的多选,全选删除功能,累

iOS开发 图片选择器、图片多选功能的实现

iOS开发 图片选择器、图片多选功能的实现

iOS开发利用ELCImagePicker第三方实现图片的多选

#import "ViewController.h" #import "ELCImagePickerController.h" #import #import @interface Vie...

iOS开发之:AssetsLibrary框架访问相册所有照片实现多选照片

AssetsLibrary框架提供了ALAssetsLibrary类来帮助我们访问相册程序管理下的照片和视频官方文档该框架下有几个类,ALAssetsLibrary,ALAssetsGroup,ALA...

iOS开发------简单实现图片多选功能(AssetsLibrary.framework篇)

AssetsLibrary.framework是iOS7.0之前用来获取手机所有的媒体资源的一个静态库,在iOS8.0之后完全可以用Photo.framework来代替,但因为涉及到适配iOS7,所以...

iOS开发------简单实现图片多选功能(Photos.framework篇)

Photos.framework是iOS8后苹果推出的一套替代AssetsLibrary.framework获取相册资源的原生库,至于AL库,欢迎大家给博文iOS开发——简单实现图片多选功能(Asse...

UITableView 多选删除功能 IOS

UITableView多选状态 删除效果图 首先在UITableView的 edittingStyleForRowAtIndexPath函数中,添加如下代码- (UITableViewCellEdi...

iOS中UITableView的编辑状态多选

开发工作中经常遇到列表编辑多选功能,UITableView其实自带的有多选功能,使用起来方便,不需要自己做选中状态,效果:获取多选cell的位置信息:``` 在 didSelectRowAtInde...

IOS UITableView多选删除功能

UITbableView作为列表展示信息,除了展示的功能,有时还会用到删除,比如购物车、收藏列表等。   单行删除功能可以直接使用系统自带的删除功能,当横向轻扫cell时,右侧出现红色的删除按钮...

ios有关UITableView单选多选框的实现

本片文章解决的问题是有关UITableView单选多选的问题,在平时开发中会遇到类似以下的需求:在一个控制器中,要求实现两个按钮,点击进行视图切换,视图一显示单元格为单选内容,视图二显示单元格为多选内...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发-UITableView-4(多选)
举报原因:
原因补充:

(最多只允许输入30个字)