UILabel UIControl , highlighted, isHighlighted.
HighlightableView Highlightable, @objc(isHighlighted).
. , highlighted. - private var _highlighted = false.
, , @objc .
protocol Highlightable: class {
var highlighted: Bool { get set }
}
extension UILabel: Highlightable { }
extension UIControl: Highlightable { }
class HighlightableView: UIView, Highlightable {
var highlighted = false
}
let label = UILabel()
label.isHighlighted
let view = HighlightableView()
view.highlighted
let highlightables: [Highlightable] = [ label, view ]
for highlightable in highlightables {
print(highlightable.highlighted)
}
.
:
@objc protocol Highlightable: class {
var isHighlighted: Bool { @objc(isHighlighted)get @objc(setHighlighted:)set }
}
extension UILabel: Highlightable { }
extension UIControl: Highlightable { }
class HighlightableView: UIView, Highlightable {
private var _isHighlighted = false
var isHighlighted: Bool {
@objc(isHighlighted) get {
return _isHighlighted
}
@objc(setHighlighted:) set {
_isHighlighted = newValue
}
}
}
let label = UILabel()
label.isHighlighted = true
let view = HighlightableView()
view.isHighlighted
let highlightables: [Highlightable] = [ label, view ]
for highlightable in highlightables {
print(highlightable.isHighlighted)
}
isHighlighted , Highlightable. @objc, , . , @objc , Swift Objective-C.
EDIT:
API iOS 10 Swift ( Xcode 7.2), UILabel UIControl isHighlighted highlighted. IOS SDK 9.3 .
, label.isHighlighted label.highlighted.
, isHighlighted highlighted ( , @objc).
9.3 iOS 10.0 API: https://developer.apple.com/library/content/releasenotes/General/iOS10APIDiffs/index.html