UITableview cell 的多选

利用NSMutableDictionary  key值 来改变cell的状态

-(void)createUI{

table = [[UITableView alloc]initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height/2.0) style:UITableViewStylePlain];
    [table setSeparatorStyle:UITableViewCellSeparatorStyleNone];
    table.delegate = self;
    table.dataSource = self;
    [self.view addSubview:table];

}
-(void)createData{
  
    dataArr = [[NSMutableArray alloc]init];
    SelectArr = [[NSMutableArray alloc]init];
    
    for (int i=0; i<50; i++) {
        NSString * string = [NSString stringWithFormat:@"测试数据%d",i];
        [dataArr addObject:string];
        NSMutableDictionary * dic = [[NSMutableDictionary alloc]init];
        [dic setObject:@"no" forKey:@"key"];
        [SelectArr addObject:dic];
    }
}

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    static NSString * stri = @"str";
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:stri];
    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:stri];
    }
    cell.textLabel.text = dataArr[indexPath.row];
    cell.textLabel.textAlignment = NSTextAlignmentCenter;

//多选
    NSString * string = [NSString stringWithFormat:@"%@",SelectArr[indexPath.row][@"key"]];

//可随意更改 图片或者按钮状态
    if (![string isEqualToString:@"no"])
    {
        cell.accessoryType =UITableViewCellAccessoryCheckmark;
    }else
    {
        cell.accessoryType =UITableViewCellAccessoryNone;
    }
    return cell;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    
    return  dataArr.count;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    return 40;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
 
    UITableViewCell *cell = [table cellForRowAtIndexPath:indexPath];
    cell.backgroundColor=[UIColor whiteColor];
    //多选
    NSString * string = [NSString stringWithFormat:@"%@",SelectArr[indexPath.row][@"key"]];
    if ([string isEqualToString:@"no"]) {
        [SelectArr[indexPath.row] setValue:@"yes" forKey:@"key"];
    }else{
        [SelectArr[indexPath.row] setValue:@"no" forKey:@"key"];
    }

//刷新tableview 改变点击状态
    [table reloadData];
}

时间: 2024-10-14 10:22:19

UITableview cell 的多选的相关文章

Why does uitableview cell remain highlighted?

What would cause a tableview cell to remain highlighted after being touched? I click the cell and can see it stays highlighted as a detail view is pushed. Once the detail view is popped, the cell is still highlighted. ####### In your didSelectRowAtIn

IOS 8 UITableView cell lines不能靠左解决方法

ios7中用以下方法可使UITableView cell lines靠左 self.tableview.separatorInset = UIEdgeInsetsZero; 但在ios8中该办法已失灵啦 经过翻阅ios8文档发现用以下两种办法即可解决该问题 方法一:- (void) viewDidLoad { [...] self.tableView.separatorInset = UIEdgeInsetsZero; if ([self.tableView respondsToSelector

UITableView 相册-判断多选相册的位置

相册页面实现如下多选功能 我实现的时候使用了 UITableView @interface PTASysAlbumVC : BaseViewController<UITableViewDelegate,UITableViewDataSource,PTSysAssetPickerControllerDelegate,PhotoAlbumClickedDelegate>{ .......... UITableView *_cvPhotoList; ....... } // // PTASysAlb

UITableView Cell 弹簧动画效果

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { cell.transform = CGAffineTransformMakeTranslation(0, 40); [UIView animateWithDuration:0.8 animations:^{ cell.transform = C

UITableView cell中label自动换行和自定义label自动换行

换行的前提必须是有足够的高度 才能换 否则不显示超出部分 所以,在设置label换行的时候 要考虑cell的高度,cell的高度也要变化,废话不多说,来段代码: cell.label.text=[dict objectForKey:@"info"];     cell.label.numberOfLines=0; //可多行显示     cell.label.lineBreakMode=NSLineBreakByWordWrapping;//拆行 设置label的高度 [self ch

优化UITableView cell的滚动速度

1. 利用好instruments.先检测leaks,再去观察优化效果. 2. 重中之重在于tableview cell的初始化,建议在tableview delegate中只实现配置方法,渲染全扔到drawInRect中做. 3. 中心思想,instruments core animation的上下两栏 Core Animation的帧率在60FPS以上,但是保持稳定也很重要 Sampler栏,不要让坡度变化太大,尽量平稳且低,在wwdc中提过.上面帧频自然越高越好. 利用reuse来循环利用

【iOS】UITableview cell 顶部空白的n种设置方法

我知道没人会主动设置这个东西,但是大家一定都遇到过这个问题,下面总结下可能是哪些情况: 1, self.automaticallyAdjustsScrollViewInsets = NO; 这个应该是最常见而且不容易被发现的原因,起因是iOS7在Conttoller中新增了automaticallyAdjustsScrollViewInsets这个属性,当设置为YES时(默认YES),如果视图里面存在唯一一个UIScrollView或其子类View,那么它会自动设置相应的内边距,这样可以让scr

iOS UITableView的使用 (选自oschina)

1.新手篇创建tableView   http://my.oschina.net/joanfen/blog/203041 2.进阶篇列表中行的操作   http://my.oschina.net/joanfen/blog/203504 3.进阶篇索引,标记和自定义的table   http://my.oschina.net/joanfen/blog/204503

IOS UITableView多选删除功能

UITbableView作为列表展示信息,除了展示的功能,有时还会用到删除,比如购物车.收藏列表等. 单行删除功能可以直接使用系统自带的删除功能,当横向轻扫cell时,右侧出现红色的删除按钮,点击删除当前cell.或者让表格进入编辑状态后,点击左侧的红色按钮,右侧出现删除按钮,删除,如下图所示.单行自带删除已经在前面文章中进行过讲解,需要的可以去查阅. 多选删除是点击编辑按钮,让表格进入编辑状态后,每行的左侧出现一个小圆圈,当点击行的时候,可以选中该行或者取消选中该行,当点击按钮确定删除的时候才