由于您想要的只是另一个UIControlEvent
,因此您可以(像以前一样)将定义的范围.applicationReserved
用作供您使用的可用空间。但是,一种更正确且易于使用的方法是:
(斯威夫特 3.0):
extension UIControlEvents {
static var increased: UIControlEvents { return UIControlEvents(rawValue: 0b0001 << 24) }
static var decreased: UIControlEvents { return UIControlEvents(rawValue: 0b0010 << 24) }
}
通过这种方式,您可以轻松地在应该使用事件的任何地方使用此定义,也可以方便地使用类型推断(例如sendActions(for: [.valueChanged, .increased])
)。
该声明对我来说也看起来更清晰,因为这些位更容易通过使用移位来看出它们是不相交的。由于.applicationReserved
定义为0b1111 << 24
,因此更确定您正在使用它的哪些部分。
如果需要,可以使用这些,并且像这里这样计算 s 或仅分配常量public
之间没有太大区别。var
let