当前位置: 代码迷 >> Iphone >> tableview的重用,该怎么处理
  详细解决方案

tableview的重用,该怎么处理

热度:74   发布时间:2016-04-25 05:51:48.0
tableview的重用
自定义了tableviewcell,在tableviewcell上加一个按钮,用做checkbox用,问题出现了,重用的问题不好解决,如果用数组把点击过的button记录下来,可是我的tableview是两个section,button的tag也会重复,求一个好方法,有木有.........


这是主要的代码:
在cellForRowAtIndexPath中,
    [cell.selectContactsBtn setBackgroundImage:[UIImage imageNamed:@"u371_normal.png"] forState:UIControlStateSelected];
    cell.selectContactsBtn.tag = indexPath.row;
    [cell.selectContactsBtn addTarget:self
                               action:@selector(addSelectContactsView:)
                     forControlEvents:UIControlEventTouchUpInside];


- (void)addSelectContactsView:(id)sender {
    
    NSLog(@"%d",[sender tag]);
    
    UIButton *selectContactsButton = (UIButton *)sender;
    selectContactsButton.selected = !selectContactsButton.selected;
    
    selectContactsView.frame = CGRectMake(0, 20, 320, 44);
    [self.view addSubview:selectContactsView];
}

------解决方案--------------------
可以考虑把显示控制与数据分离的方法,把cell的显示数据的状态数据都存储在数组里(数组内可以是dictionary也可以是model),cell通过数据来显示即可
  相关解决方案