Подкласс UIButton для пользовательских изображений? - PullRequest
0 голосов
/ 25 ноября 2011

Если у меня есть два изображения для кнопки UIB (поле с галочкой, поле без галочки), хочу ли я создать подкласс UIButton? Если да, то как узнать, когда нажата кнопка для установки двух изображений в состояние включения / выключения (или проверки / не проверки)?

Если я не должен подкласс UIButton, то я делаю что-то подобное каждый раз, когда я хочу использовать кнопку галочки в классе?

.h 
@property (nonatomic, assign) BOOL isPressed;

.m

- (IBAction)buttonPressed:(id)sender {
    isPressed = !isPressed;
    if (isPressed) {
        UIImage *checked = [UIImage imageNamed:@"checked.png"];
        [button setImage:checked forState:UIControlStateNormal];
    }
    else {
        UIImage *unchecked = [UIImage imageNamed:@"unchecked.png"];
        [button setImage:unchecked.png forState:UIControlStateNormal];
    }
}

Ответы [ 2 ]

2 голосов
/ 25 ноября 2011

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

[button setImage:@"checked.png" forState:UIControlStateSelected];
[button setImage:@"unchecked.png" forState:UIControlStateNormal];
...
- (IBAction)buttonPressed:(id)sender {
    button.selected = !button.selected;
}
0 голосов
/ 25 ноября 2011

Да, если вы хотите изменить это конкретное состояние кнопки после каждого события нажатия, это то, что вы должны сделать.

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