读书人

tableview的重用解决办法

发布时间: 2013-12-19 00:33:34 作者: rapoo

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存入数组就可以了

读书人网 >Iphone

热点推荐