2013-01-17 81 views
0

当我将自定义控件添加到UITableViewCell时(通过将UILabel拖动到故事板中的表格单元格中),内容在运行时不可见。当我点击表格行(选择它)时,内容出现,但是白色。UITableViewCell,隐藏自定义内容

项目设置:(概要:创建一个UITableView和几行代码超级最小的故事板项目创建内容):

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

将一个表视图控制器拖到storyboard上,它创建一个视图,它包含的UITableView以及该表内的默认UITableViewCell。

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

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

创建一个新文件,UITableView的子类,填充一些最低股票数据的东西,以获得几行填充“行XX”数据文本。

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

现在,我将标签拖放到故事板中的表格单元格中。我对这些属性没有任何改变。我留下标签文字,用黑色字母标注“标签”。 http://www.codexlumen.com/issue/storyboard.png

运行项目再次:在

查看图像。

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

我实际看到的:与以前完全一样。根本没有出现“标签”文本。

现在,这里是最有趣的部分:

仍然在运行,我点击一个表行来选择它。现在该行以蓝色点亮,“Label”出现在的白色处,位于放置标签控件的位置。

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

所以的UILabel是存在的,它只是没有得到绘制在非加亮后的行...

不知道为什么。

一些其他意见:

  • 我没有使用任何类型的自定义表格单元格的子类。
  • 我没有添加任何东西到项目中,或采取上面没有提到的任何步骤。
  • 我没有改变,除非设置为重复使用标识字符串到的UILabel拖到细胞
  • 我试图在我的4S同时运行和诠释,他的模拟器(用模拟器集故事板的UITableView的或的UITableViewCell对象的属性到各种设备/操作系统配置)
  • 我试过改变标签属性(黑色背景,绿色文本等)。没有效果。视觉行为是相同不管我设置什么样的属性(尽管“标签”是更大的,如果我放大文本)

这是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; 
} 

回答

2

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

+0

耶......我明白了。我从来没有在创建自定义单元格时使用库存内容,这就是为什么它一直在过去的项目中工作的原因......您100%正确:UITableViewCell标签控件*是任何自定义内容的顶部。如果我将UILabel移动到单元格的边缘,我可以看到它从UITableViewCell提供的cell.textLabel后面窥视。 - >这会教会我快速准确地打印库存内容,然后尝试自定义而不删除库存内容! –

+2

为了完成这个想法:如果你没有为UITableViewCell提供的UILabels设置任何文本,它们要么缩小到零大小,要么根本不会被添加到视图中(不知道哪个)...让自定义UI控件可见。如果你为它们设置文本,它们是不透明的,隐藏你的自定义控件。 –

+0

“UITableView”及其系列类是iOS中最神秘的事情,人们永远无法确定。 –