当我将自定义控件添加到 UITableViewCell 时(通过将 UILabel 拖到 Storyboard中的表格单元格上),内容在运行时是不可见的。当我点击表格行(以选择它)时,内容会出现,但是是白色的。
项目设置:(摘要:使用 UITableView 和几行代码创建超小型 Storyboard 项目):
新项目,单 View 应用程序,Xcode 4.5.2,使用 Storyboard。这将创建一个针对 iOS 6 的项目。
将一个 TableView Controller 拖到 Storyboard上,这将创建一个 View 、它包含的 UITableView 以及该表中的默认 UITableViewCell。
将我的 TableView Controller 设置为初始场景。
为 UITableViewCell 设置一个重用标识符字符串(在 Storyboard编辑器中)。
创建一个新文件,UITableView 的子类,填充一些最少 库存数据内容以获得几行以填充“第 XX 行”数据文本。
运行项目。数据按预期显示,几行数据显示“第 0 行”、“第 1 行”等。没有问题。
现在,我将一个标签拖到 Storyboard 中的表格单元格上。我对属性没有任何改变。我留下的标签文本只是用黑色字母写着“标签”。
查看图片:http://www.codexlumen.com/issue/storyboard.png
再次运行项目。
我的期望:我的表格行现在在行中出现了黑色文本的“标签”。
我实际看到的:和以前一模一样。 “标签”文本根本不会出现。
现在,这是有趣的部分:
仍在运行,我点击表格行将其选中。现在该行以蓝色高亮显示,并且“标签”在我放置标签控件的位置以白色出现。
查看图片:http://www.codexlumen.com/issue/hilight.png
所以 UILabel 就在那里,只是没有在非高亮行中绘制...
不知道为什么。
一些其他评论:
- 我没有使用任何类型的自定义表格单元格子类。
- 我没有向项目添加任何内容或采取任何上述未提及的步骤。
- 我没有更改 Storyboard的 UITableView 或 UITableViewCell 对象的属性,除了设置重用标识符字符串并将 UILabel 拖到单元格上
- 我尝试在我的 4s 和 int 模拟器上运行(模拟器设置为各种设备/操作系统配置)
- 我试过更改标签属性(黑色背景、绿色文本等)。没有效果。无论我设置什么属性,视觉行为都是相同的(尽管如果我放大文本,“标签”会更大)
这是 100% 的 Storyboard。我没有在代码中创建 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;
}
最佳答案
我看到你的问题了。您在使用自定义单元格时访问标准 UITableViewCell
(即 cell.textLabel
)的属性。只需杀死第 3 行即可看到差异。我建议您为每个需要的标签创建自己的导出,而不是使用标准的。
关于ios - UITableViewCell,自定义内容不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14373566/