[英]Whats the use of UIControlState “application” of UIButton?
application
和reserved
基本上是標記。 在查看它們的objective-c文檔時,這一點更加清晰:
disabled : UIControlStateDisabled = 1 << 1
application : UIControlStateApplication = 0x00FF0000
保留 : UIControlStateReserved = 0xFF000000
這意味着例如UIControlState
的第二個最低有效位負責確定是否禁用UIControl
。 從17 - 24
(從1 << 16
到1 << 23
)的所有位都可供您的應用程序使用,而25 - 32
(從1 << 24
到1 << 31
)可供內部框架使用。
這基本上意味着Apple能夠/允許在使用最低16位時定義控件的新狀態標志,您可以保證能夠使用8位自定義標志。
定義自定義標志可以通過以下方式完成:
let myFlag = UIControlState(rawValue: 1 << 18)
class MyButton : UIButton {
var customFlags = myFlag
override var state: UIControlState {
get {
return [super.state, customFlags]
}
}
func disableCustom() {
customFlags.remove(myFlag)
}
}
可以通過使用
let myButton = MyButton()
print(myButton.state.rawValue) // 262144 (= 2^18)
myButton.isEnabled = false
myButton.isSelected = true
print(myButton.state.rawValue) // 262150 (= 262144 + 4 + 2)
myButton.disableCustom()
print(myButton.state.rawValue) // 6 (= 4 + 2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.