0

当我将自定义控件添加到 UITableViewCell(通过将 UILabel 拖到情节提要中的表格单元格上)时,内容在运行时是不可见的。当我点击表格行(以选择它)时,内容会出现,但是是白色的。

项目设置:(总结:用一个 UITableView 和几行代码创建超极简的故事板项目来创建内容):

新项目,单视图应用程序,Xcode 4.5.2,使用故事板。这将创建一个针对 iOS 6 的项目。

将表格视图控制器拖到情节提要上,这将创建一个视图、它包含的 UITableView 以及该表格内的默认 UITableViewCell。

将我的表格视图控制器设置为初始场景。

为 UITableViewCell 设置一个重用标识符字符串(在故事板编辑器中)。

创建一个新文件,UITableView 的子类,填写一些最低限度的库存数据以获取几行以填充“第 XX 行”数据文本。

运行项目。数据按预期出现,几行数据显示“第 0 行”、“第 1 行”等。没有问题

现在,我将标签拖到故事板中的表格单元格上。我对属性没有任何改变。我留下标签文本只是用黑色字母说“标签”。

参见图片: http: //www.codexlumen.com/issue/storyboard.png

再次运行项目。

我的期望:我的表格行现在有“标签”出现在行中,以黑色文本显示。

我实际看到的:和以前完全一样。“标签”文本根本不会出现。

现在,这是有趣的部分:

仍在运行,我点击表格行以选择它。现在该行以蓝色突出显示,并且“标签”在我放置标签控件的位置以白色显示。

参见图片: http: //www.codexlumen.com/issue/hilight.png

所以 UILabel 就在那里,它只是没有被绘制在非突出显示的行中......

不知道为什么。

其他一些评论:

  • 我没有使用任何类型的自定义表格单元子类。
  • 我没有向项目添加任何内容或采取任何上述未提及的步骤。
  • 除了设置重用标识符字符串并将 UILabel 拖到单元格上之外,我没有更改情节提要的 UITableView 或 UITableViewCell 对象的属性
  • 我尝试在我的 4s 和模拟器上运行(模拟器设置为各种设备/操作系统配置)
  • 我尝试更改标签属性(黑色背景、绿色文本等)。没有效果。无论我设置什么属性,视觉行为都是相同的(尽管如果我放大文本,“标签”会更大)

这是 100% 的故事板。我没有在代码中创建 UI 对象。代码中对 UI 的唯一引用是填充表格单元格的代码,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"MyCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    cell.textLabel.text = [NSString stringWithFormat:@"Line %i", indexPath.row];

    return cell;
}
4

1 回答 1

2

我看到了你的问题。您在使用自定义单元格时访问标准UITableViewCell(即)的属性。cell.textLabel只需杀死第 3 行即可查看差异。我建议您为所需的每个标签创建自己的网点,而不是使用标准网点。

于 2013-01-17T07:10:12.693 回答