6

在具有情节提要和自适应布局(又名大小类)的 iOS 8 项目中,我在 2 个场景中使用静态单元格 -

并且由于某种原因,顶部单元格的蓝色背景颜色未在 iPad 上显示:

截图

请问,这可能是什么原因?

我什至用调试器(通过 viewDidLoad 单步执行)和 Main.storyboard 的 XML 代码进行了搜索,但找不到原因。

我也重置了模拟器设置,并在我拥有的 Yosemite 和 Mavericks mac 上进行了尝试。

这是我的故事板(请点击全屏),我在其中设置了背景颜色(对于wAnyhAny):

Xcode

在预览(此处为fullscreen)中,iPad 和 iPhone 中都存在背景颜色:

预习

如果我在这里做错了什么,如何找到并重置它?

更新:

我已经尝试过 DCGoD 的建议(谢谢) - 它有效。当我尝试使用以下代码设置单元格背景颜色时,它可以工作(此处为fullscreen):

截图

#define THEME_COLOR_BLUE [UIColor colorWithRed:19.0/255 green:175.0/255 blue:207.0/255 alpha:1.0]

- (void)tableView:(UITableView *)tableView
    willDisplayCell:(UITableViewCell *)cell
    forRowAtIndexPath:(NSIndexPath *)indexPath
{
    cell.contentView.backgroundColor = THEME_COLOR_BLUE;
}

我明白,我可以用这个作为一种解决方法......

但我仍然很好奇我的故事板出了什么问题。为什么它适用于 iPhone,而不适用于 iPad?我更喜欢使用纯粹的“视觉”解决方案(使情节提要更易于编辑)。

解决方案:

出于某种奇怪的原因,修复是设置“内容视图”的背景颜色(而不是其父级 - “表格视图单元格”。这里全屏):

Xcode 截图

4

1 回答 1

2

尝试更改单元格的背景,然后是 contentViews 背景,您会发现发生了什么。

cell.contentView.backgroundColor = YOURCOLOR

// 对于静态尝试在 willDisplayCell 中设置它

func tableView(tableView: UITableView!, willDisplayCell cell: UITableViewCell!, forRowAtIndexPath indexPath: NSIndexPath!) {
    cell.contentView.backgroundColor = YOURCOLOR
}
于 2015-04-20T21:17:28.477 回答