来自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中使用的枚举声明的类型吗?
答案 0 :(得分:13)
我认为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, ...
};
答案 1 :(得分:-1)
要使用枚举,您只需执行按位操作:
UIControlEventAllEditingEvents | UIControlEventApplicationReserved | UIControlEventApplicationReserved