在我的TableView中,didSelectRowAtIndexPath只更新每个单元格中表格的最后一个可见单元格。
以下是示例代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([tableView isEqual:subcategoryTV])
{
selCell=(MDTableViewCell *)[subcategoryTV cellForRowAtIndexPath:indexPath ];
if ([checkButton.titleLabel.text isEqualToString:@"✓"])
{
checkButton.backgroundColor=[UIColor clearColor] ;
[checkButton setTitle:resetTitle forState:UIControlStateNormal];
[checkButton setTitleColor:[UIColor clearColor] forState:UIControlStateNormal];
checkButton.layer.borderColor = [UIColor lightGrayColor].CGColor;
}
else
{
resetTitle=checkButton.titleLabel.text;
NSLog(@"%@",resetTitle);
checkButton.backgroundColor=[UIColor colorWithRed:1 green:0.839 blue:0.314 alpha:1] ;
[checkButton setTitle:@"✓" forState:UIControlStateNormal];
[checkButton.titleLabel setFont:[UIFont fontWithName:@"Futura" size:25]];
[checkButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
checkButton.layer.borderColor = [UIColor clearColor].CGColor;
}
if (costLabel.hidden==YES) {
costLabel.hidden=NO;
}
else
{
costLabel.hidden=YES;
}
}
}
答案 0 :(得分:2)
你不应该从单元格查询数据,你应该检查你的模型来决定做什么。当用户更改任何行或按钮时,您更新模型,然后使用它来更新视图。这是正确的方法。
此处的具体问题,即您的方法不好,就是您在选定的索引路径中获取单元格,然后不使用它。您应该从单元格中获取按钮和标签。