[英]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.