前段时间开发中 遇到一个关于tableView的重用池 问题
选择 好几个 cell 发送消息,之后滑动cell 突然发现 没选择的地方 也选上了 很是 纠结
最后只得各种查 各种挠脑袋 掉了 无数头发之后 终于搞定
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TeacherTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"teacherCell" forIndexPath:indexPath];
NSDictionary *item = _dataArray[indexPath.row];
cell.nameLabel.text = item[@"name"];
NSLog(@"_selectArray = %@",_selectArray);
NSMutableArray * array = [NSMutableArray arrayWithArray: _selectArray];
if (_selectArray.count > 0) {
cell.chooseImage.hidden = YES;
for (NSNumber *nn in array) {
if ([[NSNumber numberWithInteger:indexPath.row]isEqual:nn]) {
cell.chooseImage.hidden = NO;
}
}
}else{
cell.chooseImage.hidden = YES;
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
TeacherTableViewCell * cell = [self.tableView cellForRowAtIndexPath:indexPath];
// update Array;
NSDictionary * dict = self.dataArray[indexPath.row];
//进入界面 点击cell sendArray数组添加对象
//判断 如果数组内有值(点击过一次)
if ([self.sendArray containsObject:dict] == YES) {
//点击第二次 至空数组
[self.sendArray removeObject:dict];
[self.teacherIDArray removeObject:dict[@"teacherID"]];
// UpdateUI cancel Image;
//cell.chooseImage.image = [UIImage imageNamed:@"black1_Icon"];
NSMutableArray * array = [NSMutableArray arrayWithArray: _selectArray];
if (_selectArray.count > 0) {
for (NSNumber *nn in array) {
if ([[NSNumber numberWithInteger:indexPath.row] isEqual:nn]) {
[_selectArray removeObject:nn];
}
}
}else{
return;
}
NSLog(@"_selectArray = %@",_selectArray);
cell.chooseImage.hidden = YES;
} else {// 数组内没有值
// 数组内添加消息
[self.sendArray addObject:dict];
[self.teacherIDArray addObject:dict[@"teacherID"]];
// UpdateUI add Image;
//cell.chooseImage.image = [UIImage imageNamed:@"checkIn_Select_ButtonBG"];
cell.chooseImage.hidden = NO;
NSInteger newRow = indexPath.row;
[self.selectArray addObject:[NSNumber numberWithInteger:newRow]];
}
NSLog(@"%@",self.sendArray);
}
具体代码 已经贴上 按照 上述方法 解决了重用池的问题, 有什么不足的 希望 大神 可以指出 谢谢!!!