UIView 中的“BOOL 突出显示”属性而不是 UITableViewCell?
Posted
技术标签:
【中文标题】UIView 中的“BOOL 突出显示”属性而不是 UITableViewCell?【英文标题】:"BOOL highlighted" property in UIView rather than UITableViewCell? 【发布时间】:2016-01-07 05:35:10 【问题描述】:当我阅读 Apple 的 TableViewSuite sample code
时,我发现了一些令人困惑的地方:
APLTimeZoneView
是 APLTimeZoneCell
的 contentView
中的 UIView。但是,有一个属性名为
@property (nonatomic, getter=isHighlighted) BOOL highlighted
在APLTimeZoneView
,显然,选择了属性的自定义setter时被选中。
我的问题是,为什么 APLTimeZoneView
中的突出显示属性而不是 APLTimeZoneCell
?我检查了 API 文档,似乎在 UIView
中没有这样的属性,只有在 UITableViewCell
中。为什么SETTER在选择行时被调用highlighted
true,只要选择行?
【问题讨论】:
【参考方案1】:在Table View Programming Guide中,有一条很小的说明写着:
如果子视图实现(如果适用)highlighted 属性的访问器方法,则会自动选择内容。
注意:要在 Swift 中实现相同的功能,您需要提供一个计算属性,以便您可以使用特定的 @objc
名称注释 set
和 get
:
private var _highlighted: Bool = false
var highlighted: Bool
@objc(isHighlighted) get return _highlighted
@objc(setHighlighted:) set
_highlighted = newValue
// Now configure the view based on the new value...
【讨论】:
以上是关于UIView 中的“BOOL 突出显示”属性而不是 UITableViewCell?的主要内容,如果未能解决你的问题,请参考以下文章
UIView contentstretch 将圆形更改为椭圆形,而不是药丸形状