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