簡體   English   中英

什么是使用UIBontrol的UIControlState“應用程序”?

[英]Whats the use of UIControlState “application” of UIButton?

我也經歷了蘋果文檔,但它只是說明了它

可供應用程序使用的其他控制狀態標志。

它只是一個getter方法,所以什么時候設置?

applicationreserved基本上是標記。 在查看它們的objective-c文檔時,這一點更加清晰:

disabledUIControlStateDisabled = 1 << 1

applicationUIControlStateApplication = 0x00FF0000

保留UIControlStateReserved = 0xFF000000

這意味着例如UIControlState的第二個最低有效位負責確定是否禁用UIControl 17 - 24 (從1 << 161 << 23 )的所有位都可供您的應用程序使用,而25 - 32 (從1 << 241 << 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM