当我向UITableViewCell添加自定义控件时(通过将UILabel拖到故事板中的表格单元格上),内容在运行时是不可见的。当我点击表格行(选择它)时,内容会显示,但会显示白色。
项目设置:(摘要:使用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就在那里,它只是没有被非高亮的行所吸引......
不知道为什么。
其他一些评论:
这是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;
}
答案 0 :(得分:2)
我看到了你的问题。您在使用自定义单元格时访问标准UITableViewCell
的属性(即cell.textLabel
)。只需杀死第3行即可看出差异。我建议您为所需的每个标签创建自己的插座,而不是使用标准插座。