【问题标题】:Possible UITableViewCell UILabel Compositing Anomaly可能的 UITableViewCell UILabel 合成异常
【发布时间】:2011-03-10 20:58:27
【问题描述】:

考虑一个 UITableViewCell,其样式为 UITableViewCellStyleDefault,设置为 tableView:cellForRowAtIndexPath:,渐变背景,设置为 tableView:willDisplayCell:forRowAtIndexPath:

当它被渲染时,textLabel 将与渐变完美融合,并且突出显示效果也一样。

现在,如果我们保持一切相同,但将单元格样式更改为 UITableViewCellStyleSubtitle 会怎样?就我而言,textLabeldetailTextLabel 根本不再融合!它们呈现出……其他颜色。与渐变中的颜色相差不远,但它根本不会混合。改回默认样式,一切正常。

现在,我意识到我可以在 ...willDisplayCell... 中将标签设置为 clearColor,但我一遍又一遍地被告知:“不要那样做!让它们单独显示颜色。”

也许我必须这样做作为一种解决方法?还是可能有其他问题?欢迎/赞赏线索!

【问题讨论】:

  • 您在哪里阅读/被告知不要更改标签颜色以清除?我已经在几个地方这样做了......
  • IIRC 我在 WWDC presos 等地方一次又一次地从 Apple 开发人员那里听到。正如他们所说,当在连接 iOS 设备的 Core Anamation Instrument 中使用“颜色混合层”时,“绿色很好”——将合成保持在最低限度等等。即使有渐变背景,对于 UITableViewCellStyleDefault 和其他未触及的 textLabel,它一直是绿色的。在这种情况下,我怀疑 UITableViewCell 正在帮助绘图......但在使用 Subtitle 样式时它似乎没有帮助。所以我想知道这种断开是错误、功能还是介于两者之间的东西。

标签: iphone uikit uitableview gradient


【解决方案1】:

解决方法是使用 NSString 的 drawInRect 函数。您可以使用 NSString sizeWithFont:forWidth:lineBreakMode: 方法计算矩形大小,然后以这种方式绘制字符串。

有关字符串大小和绘图的更多信息,请访问apples docs site

【讨论】:

  • 确实!每当我使用 drawRect 时,我都会使用 drawInRect,但在这种情况下,目标是保持离开那里并坚持使用库存表视图单元格位。 (仅用于锻炼目的,请注意!)
猜你喜欢
  • 1970-01-01
  • 2014-11-09
  • 2011-12-02
  • 2015-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多