【问题标题】:"BOOL highlighted" property in UIView rather than UITableViewCell?UIView 中的“BOOL 突出显示”属性而不是 UITableViewCell?
【发布时间】:2016-01-07 05:35:10
【问题描述】:

当我阅读 Apple 的 TableViewSuite sample code 时,我发现了一些令人困惑的地方:

APLTimeZoneViewAPLTimeZoneCellcontentView 中的 UIView。但是,有一个属性名为

@property (nonatomic, getter=isHighlighted) BOOL highlighted

APLTimeZoneView,显然,选择了属性的自定义setter时被选中。

我的问题是,为什么 APLTimeZoneView 中的突出显示属性而不是 APLTimeZoneCell ?我检查了 API 文档,似乎在 UIView 中没有这样的属性,只有在 UITableViewCell 中。为什么SETTER在选择行时被调用highlighted true,只要选择行?

【问题讨论】:

    标签: ios objective-c uitableview uiview


    【解决方案1】:

    Table View Programming Guide中,有一条很小的说明写着:

    如果子视图实现(如果适用)highlighted 属性的访问器方法,则会自动选择内容。

    注意:要在 Swift 中实现相同的功能,您需要提供一个计算属性,以便您可以使用特定的 @objc 名称注释 setget

    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...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多