【问题标题】:Set two background colour in table cell in iOS?在 iOS 的表格单元格中设置两种背景颜色?
【发布时间】:2015-06-24 10:51:27
【问题描述】:

我必须像 一样设计UITableViewCell

请注意时间标签和文本标签有不同的背景,交替的单元格也有不同的颜色。

我尝试为单元格中的每个 UILabel 设置背景颜色。有更好的选择吗?请注意,我支持所有 iOS 设备。请提出建议。

编辑:为了更好地理解我的问题,我正在使用此代码-

if ((indexPath.row % 2) == 0) {
    // Even : Set Even color combination to both labels
}
else    {
    // Odd : Set Even color combination to both labels
}

现在真正的问题是——这是最好的方法吗?意味着如果我为每个单元格中的标签设置背景颜色,它不会影响滚动性能吗?

【问题讨论】:

  • 嗯,它是单元格的颜色,而不是单元格内的标签,将启用该效果。在我看来,它们就像是同一种细胞;但配置不同。
  • 你能重新表述你的问题吗?你真正的问题是什么?
  • 问题是实现这种设计的最佳方法是什么?我在每个单元格中使用两个具有不同背景颜色的标签。
  • 每个单元格有不同的颜色或只有这两种颜色在tableview中使用
  • 只有这两种颜色交替使用,表示这两种单元格会一个接一个地重复。

标签: ios objective-c uitableview


【解决方案1】:

您可以为标签设置背景颜色以实现此设计。
您需要检查备用单元格以设置任何一种颜色。

为此,只需使用 mod 检查 cellForRowAtIndexPath 方法中的 indexPath.row。

if ((indexPath.row % 2) == 0) {
    // Even : Set Even color combination to both labels
}
else    {
    // Odd : Set Odd color combination to both labels
}

【讨论】:

  • 我已按照您的建议实施,但我的问题是这是最好的方法吗?意味着如果我为每个单元格中的标签设置背景颜色,它不会影响滚动性能吗?
  • 如果您使用 ReusableCell,对性能的影响为零。您的表格视图将仅加载那些在屏幕上可见的单元格。即使您有 1000 个项目来显示分配的单元格数量也将相同。
【解决方案2】:

如果我正确理解您的问题,您需要在 viewDidLoad 的某处创建静态 UIColor 对象,它只会初始化一次。

static UIColor *oddColor = ...;
static UIColor *evenColor = ...;

然后,你可以在你的代码中更新它,它是完美的。这样,这些颜色对象只会创建一次,您将在单元格中使用相同的颜色。所以它有机会在滚动时获得良好的性能。

但是,如果单元格数量不多,则不需要使用静态。保持原样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 2012-06-06
    • 2015-06-02
    • 2010-11-21
    • 2011-10-10
    • 1970-01-01
    • 2016-12-18
    相关资源
    最近更新 更多