【发布时间】:2016-08-23 21:33:57
【问题描述】:
我有一个自定义 UIButton,它具有一些我希望它具有的独特状态:
enum PositionControlState : Int {
case Available = 0, Pending, Waiting, Approved, Declined
}
我做了一些谷歌搜索,发现了一些关于位掩码的东西,以及 Objective-c 中的 UIControlState.Application。我觉得我有一些拼图,但不太确定如何在 swift 2.2 中将它们组合在一起。
【问题讨论】:
-
Swift 使用
OptionSetType而不是位掩码。 -
类似:\br
struct PositionControlState : OptionSetType { let rawValue: Int static let Available = UIControlState(rawValue: 0) static let Waiting = UIControlState(rawValue: 1 << 0) static let Pending = UIControlState(rawValue: 1 << 1) static let Approved = UIControlState(rawValue: 1 << 2) static let Declined = UIControlState(rawValue: 1 << 3) } -
是的,尽管你必须小心不要让任何原始值与已经内置的值发生冲突
标签: swift uibutton uikit uicontrol uicontrolstate