Понимание цели декларации - PullRequest
2 голосов
/ 15 мая 2009

с 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?

};

Мое предположение, что это диапазон, основано на документах. Которые говорят:

Я предполагаю это, потому что документы говорят: диапазон значений управляющих событий, доступных для использования приложением.

Может ли кто-нибудь помочь мне понять тип объявления enum, используемого в UIControl?

Ответы [ 2 ]

13 голосов
/ 15 мая 2009

Я думаю, что 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, ...
};
0 голосов
/ 15 мая 2009

Чтобы использовать перечисления, вы просто делаете побитовые операции:

UIControlEventAllEditingEvents | UIControlEventApplicationReserved | UIControlEventApplicationReserved
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...