我正在尝试为我当前正在构建的应用程序的一部分创建一个清单,并且我在使用viewWithTag:
更新原型单元格上的文本时遇到问题。应用程序中的其他所有内容都正常工作,我可以单击正在创建的单元格。
需要使用viewWithTag的两种方法是:
- (void)configureCheckmarkForCell:(UITableViewCell *)cell withChecklistItem:(OTChecklistItem *)item {
UILabel *label = (UILabel *)[cell viewWithTag:1001];
if (item.checked) {
label.text = @"√";
} else {
label.text = @"";
}
label.textColor = self.view.tintColor; }
和
- (void)configureTextForCell:(UITableViewCell *)cell withChecklistItem:(OTChecklistItem *)item
{
UILabel *label = (UILabel *)[cell viewWithTag:1000];
label.text = item.itemName;
}
这些方法由以下人员调用:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Get a new or recycled cell
UITableViewCell *cell =
[tableView dequeueReusableCellWithIdentifier:@"OTChecklistTableViewCell" forIndexPath:indexPath];
NSArray *items = [[OTChecklistStore sharedStore] allItems];
OTChecklistItem *item = [items objectAtIndex:indexPath.row];
[self configureTextForCell:cell withChecklistItem:item];
[self configureCheckmarkForCell:cell withChecklistItem:item];
return cell;
}
以下是我的故事板中的一些屏幕截图,显示我的连接和标签应该是正确的。
答案 0 :(得分:1)
我发现了问题。它奏效了:
用于从cellForRow方法中取消单元格的标识符是 不同于界面构建器中设置的那个。看看吧。
更改:强>
UITableViewCell *cell =
[tableView dequeueReusableCellWithIdentifier:@"OTChecklistTableViewCell" forIndexPath:indexPath];
要强>
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"OTPlansTableViewCell" forIndexPath:indexPath];