2013-07-10 5 views
1

Я работаю над проектом ios, который использует UIButton. Я использовал [cardButton setTitle:card.contents forState:UIControlStateSelected|UIControlStateDisabled]; Но я не совсем понимаю механизм. Я знаю, что это процесс emun и bitmask. Может ли кто-нибудь объяснить мне немного больше? Благодарю.Как работает управление в UIControl?

enum { 
    UIControlStateNormal    = 0, 
    UIControlStateHighlighted   = 1 << 0, 
    UIControlStateDisabled    = 1 << 1, 
    UIControlStateSelected    = 1 << 2, 
    UIControlStateApplication   = 0x00FF0000, 
    UIControlStateReserved    = 0xFF000000 
}; 

ответ

0

Управление может иметь more than one states at a time например. выбранные и выделенные могут сосуществовать и т. д.

Таким образом, вы можете указать названия и изображения для комбинаций состояний.

Например.

UIButton * button; 
//initialization code 
NSString * title = @"Title"; 
[button setTitle:title forState:UIControlStateHighlighted | UIControlStateSelected]; 
title = [button titleForState:UIControlStateHighlighted | UIControlStateSelected]; 

В битмасках используются для того, чтобы произвести уникальное значение для каждого и каждую комбинацию значений - попробовать их с помощью побитового OR и вы получите его. Это не очень отличается от валютных нот: $ 1, $ 2, $ 5, $ 10 и т. Д., Которые способны платить любую целую сумму, например. $ 1 и $ 2 счета могут быть использованы для оплаты $ 3, $ 4 и т. Д., Поэтому вам нужно только определенное количество счетов.

+0

so, forState: UIControlStateHighlighted | UIControlStateSelected означает настройку материала для выделенных и выбранных. И уникальность государства - причина, по которой они использовали битмаску, не так ли? – Steven

Смежные вопросы