UITableViewCell 重用问题,关于Button highlighted 显示不正确

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    CarDetailTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifyCarDetail forIndexPath:indexPath];
    NSLog(@"fenceName.text:%@ cell.infenceBtn:%d", cell.fenceName.text, cell.infenceBtn.highlighted);
    CarFence *carFence = self.carDetail.fence[indexPath.row];
    NSLog(@"carFence:%@ inFence:%d", carFence.fenceName, carFence.inFence);
    cell.fenceName.text = carFence.fenceName;
    cell.infenceBtn.highlighted = !carFence.inFence;
    NSLog(@"==================================");
    return cell;
}

cell.infenceBtn.highlighted = !carFence.inFence;
这句是接口遗留问题。

cell.fenceName.text = carFence.fenceName;
这句对应显示是正确的
第二行的按钮highlighted 不正确

图片描述

所有测试3的log 均正确

初始 - fenceName.text:测试3 cell.infenceBtn:0 //cell 进入代理时的状态
数据 - carFence:测试3 inFence:0 //这里数据是正确的,因为要取反
完成 - cell.fenceName:测试3 Btn.highlighted:1 // 正确,设置后的Btn.highlighted 状态。

我把修改了XIB 的Default 和 highlighted 使之对应就好了
原因可能和XIB 的加载有关,请问究竟是哪里的问题。

阅读 2.5k
1 个回答

原因找到了 Btn 用户交互没有关

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题