首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Iphone >

tableview的重用解决办法

2013-12-19 
tableview的重用这是主要的代码:在cellForRowAtIndexPath中,[cell.selectContactsBtn setBackgroundImage:

tableview的重用


这是主要的代码:
在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通过数据来显示即可
[解决办法]
不用UIButton,自己写一个UIButton的子类,cell用哪个子类,子类加一个属性NSIndexPath* indexPath, 把checkBox所在的index path赋给子类的index path属性,选中的时候把index path存入数组就可以了

热点排行