【问题标题】:UITableViewCell Selectioncolor hides everythingUITableViewCell Selectioncolor 隐藏一切
【发布时间】:2011-07-23 18:04:21
【问题描述】:

当我选择一个自定义单元格时,它会隐藏单元格中的所有内容并仅显示选择颜色。

我怎样才能在选择时使背景变暗一点?

【问题讨论】:

  • 尝试发布一些代码...
  • 单元格在 IB 中完成。我正在继承 UITableViewCell。我在那个类中只有 getter 和 setter。

标签: iphone cocoa-touch uitableview uikit


【解决方案1】:

除了覆盖setHighlighted:,您还可以利用表格视图单元格的视图构成。

iOS 应用高亮时,实际上是在使用每个表格视图单元格的selectedBackgroundView 属性。因此,您可以制作一个自定义 UIView(但是设置样式,例如为其设置所需的背景颜色)并将其设置为表格视图单元格的 selectedBackgroundView 属性 (cell.selectedBackgroundView)。在自定义单元格的其他详细信息时,请在 cellForRowAtIndexPath: 中执行此操作。

这意味着您可以自己控制选择;不会应用 iOS 默认渐变。


也可以通过 Interface Builder 更改 selectedBackgroundView。在与您的自定义单元格相同的笔尖中,在笔尖中创建另一个视图 - 而不是自定义表格视图单元格的子视图 - 并将其与自定义表格视图单元格的 `selectedBackgroundView' 出口连接。

【讨论】:

  • 我发现了问题。 CustomCell 的视图链接到 backgroundView。由于我删除了该链接,因此它与您建议的 selectedBackgroundView 完美配合。唯一的问题是我不能再用 cell.backgroundColor 设置单元格的背景
  • 在 IB 中链接就像您将 iboutlet 链接到标签一样
  • 如果您想现在设置背景颜色,您必须更改 cell.backgroundView 或 cell.selectedBackgroundView 本身的背景颜色,因为它们现在显示在常规单元格的背景颜色上方。跨度>
【解决方案2】:

如果这是自定义单元格,请实现

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated

并调整其中的背景颜色。

【讨论】:

    【解决方案3】:

    您可以在选择单元格时添加突出显示的文本颜色。

    cell.selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"part2.png"]];
    
    
    cell.textLabel.highlightedTextColor = [UIColor blackColor];
    

    根据您突出显示的单元格选择颜色设置选定的文本颜色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 2014-03-05
      • 1970-01-01
      相关资源
      最近更新 更多