澄清UITableViewCell在突出显示事件上的未记录行为

时间:2011-04-28 18:54:06

标签: iphone ios uitableview

当单元格突出显示(用户触及单元格)时,UITableViewCell会修改其contentView层次结构的内容。

我迄今发现的两个例子:

  • 将UIView放在单元格的contentView中,背景色。当表格单元格突出显示时,UIView的背景颜色被删除(显然它设置为具有清晰的背景。)
  • 在contentView中放置一个UIButton。当单元格突出显示时,该按钮也会强制进入突出显示状态。

就好像UITableView单元格中有一些逻辑检查单元格层次结构中的所有视图,并根据一组神秘的规则修改它们,然后在单元格未突出显示后将它们恢复正常。

任何人都可以在我的自定义表格视图单元格的内容中解释UITableViewCell正在修改的内容(意外地以未记录的方式)吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

UITableViewCell的突出显示在Apple docs中,如下所示:

  

突出显示影响了   标签,图像和图像的外观   背景。当突出显示   单元格的状态设置为YES,标签   以突出显示的文字绘制   颜色(默认为白色)。默认   价值是NO。如果你设置了   通过此突出显示状态为YES   财产,向新的过渡   状态外观不动画。对于   动画突出显示状态   过渡,见   setHighlighted:animated:method。

     

注意突出显示工作   正确地说,你必须获取单元格   使用textLabel和的标签   detailTextLabel属性和设置   每个标签的highlightTextColor   属性;对于图像,获取单元格   使用imageView属性的图像和   设置UIImageView对象   highlightedImage属性。

这没有提及UIButtons,但this post是关于如何防止按钮在单元格进入突出显示状态时。