【发布时间】:2014-07-17 20:41:58
【问题描述】:
在我的 TableViewController 中,我通过情节提要设置了 TableViewCell。而在…cellForRowAtIndexPath的方法中我做到了
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath`
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"my_identifier" forIndexPath:indexPath];
UILabel *myTitle = (UILabel *)[cell.contentView viewWithTag:1];
UITextView *myDetail = (UITextView *)[cell.contentView viewWithTag:2];
//…more stuff
myTitle.text = item.title;
myDetail.text = item.detail;
return cell;
}
当我在情节提要中设置 TableViewCell 时,我通过属性检查器设置标签。无论如何,此时我正在通过 NSLog 记录所有内容,以便我知道我的数据存在,myTitle 确实包含标题等。例如以下日志记录工作
NSLog(@“my title after passing it to myTitle is %@“, myTitle.text);
所以我正在全面记录。但是无论出于何种原因,当我运行代码时,单元格都没有显示在表格中。一直说没有数据。
此时唯一有意义的是,例如,myTitle 不是指向单元格中包含的标题的指针。那么有没有办法将myTitle的内容设置回单元格呢?我知道我错过了一些东西。我只是不知道它是什么。
更新
所以我根据this youtube video 创建了一个 UITableViewCell 的子类。仍在记录所有内容,我的记录显示一切都应该正常工作,但表格仍然没有显示任何内容。除了“没有结果”。就好像单元格不属于表格,但它在文档大纲中:表格视图 > 视图 > 自定义表格视图单元格 - my_identifier > 内容视图 > [我的孩子视图]
【问题讨论】:
-
我知道这与您的问题无关 - 只是一个一般性建议。为什么不在
CustomTableViewCell上使用 IBOutlet 属性?您可以为 UILabel 创建一个 IBOutlet,将其命名为 myTitle,并将其作为属性放在CustomTableViewCell中。然后在你的 cellForRowAtIndexPath 中,你可以使用 cell.myTitle 而不是viewWithTag。 -
@LyricalPanda 您所说的可能有效,但我将如何“将其作为 CustomTableViewCell 中的属性”?我正在考虑它,但我没有看到它。如果这能解决问题,我很乐意放弃标签内容。
-
一些想法:确保您已注册单元格以便在表格中重复使用。如果它是情节提要中的原型单元,请务必给它一个标识符。在界面生成器中仔细检查单元格的标识符。尝试给我们将单元格出列的代码,以便其他人可能查明问题
-
@KatedralPillon 这不会解决您的问题,只是一个建议,以帮助您的代码更易于维护和使用 IBOutlets 的强大功能,因为您使用的是故事板。这是一张专辑的样子:imgur.com/a/r9ECf#0。它显示了将其作为属性添加到 .h,确保 Storyboard 中 UITableViewCell 上的属性链接到 UILabel,然后如何在 cellForRow 中使用它。
-
@iFeli 你让它听起来像一个两步过程。我想通过设置标识符来设置单元格以供重用。还有其他地方可以设置它以供重复使用吗?
标签: ios objective-c uitableview