簡體   English   中英

理解Objective c enum聲明

[英]Understanding Objective c enum declaration

來自iPhone UIControl

UIControlEventAllTouchEvents      = 0x00000FFF,
UIControlEventAllEditingEvents    = 0x000F0000,
UIControlEventApplicationReserved = 0x0F000000,
UIControlEventSystemReserved      = 0xF0000000,
UIControlEventAllEvents           = 0xFFFFFFFF

現在我假設UIControlEventApplication是我可以用來指定自定義控件事件的'范圍',但我不知道如何正確地執行它。 僅當我分配0xF0000000時,控制事件才會正確觸發。 如果我分配任何其他內容(0xF0000001),控件事件將在不應該觸發時觸發。

一些澄清:

enum {
    UIBPMPickerControlEventBeginUpdate = 0x0F000000,
    UIBPMPickerControlEventEndUpdate = // Which value do I use here?

};

我假設它是一個范圍是基於文檔。 哪個說:

我假設這是因為文檔說:一系列可供應用程序使用的控制事件值。

任何人都可以幫我理解UIControl中使用的枚舉聲明的類型嗎?

我認為0x0F000000是你可以用來創建自己的控制事件的4位。

0x0F000000 = 00001111 00000000 00000000 00000000

所以任何組合:

0x00000001<<27 = 00001000 00000000 00000000 00000000
0x00000001<<26 = 00000100 00000000 00000000 00000000
0x00000001<<25 = 00000010 00000000 00000000 00000000
0x00000001<<24 = 00000001 00000000 00000000 00000000

您當然可以將這些一起創建新的:

0x00000001<<24 | 0x00000001<<25 = 00000011 00000000 00000000 00000000

所以在你的例子中:

enum {
    UIBPMPickerControlEventBeginUpdate = 0x00000001<<24,
    UIBPMPickerControlEventEndUpdate = 0x00000001<<25, ...
};

要使用枚舉,您只需執行按位操作:

UIControlEventAllEditingEvents | UIControlEventApplicationReserved | UIControlEventApplicationReserved

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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