Как отключить переворачивание изображения UIButton при касании? - PullRequest
1 голос
/ 06 декабря 2011

Я выбрал изображение для UIButton для «UIControlStateNormal», и если я нажимаю эту кнопку, изображение затеняется и переворачивается вверх дном, пока я его удерживаю.

Затенение в порядке, но как я могу отключить переворачивание, если я не хочу устанавливать пользовательское изображение для состояния "UIControlStateHighlighted"? Спасибо за помощь

Мой код для создания кнопок:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        button.tag=i;
        [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
        button.frame = CGRectMake(xakt, yakt, a, b);

и после этого я установил изображение кнопки с функцией - (void)setImage:(UIImage *)image forState:(UIControlState)state. Я включил 2 изображения, первое в нормальном состоянии, второе в нажатом состоянии

Normal statepressed state

Ответы [ 2 ]

2 голосов
/ 02 мая 2013

Мои наблюдения этого поведения, описанные выше (изображение на кнопке инвертируется при нажатии), ограничиваются следующими ситуациями:

  1. Изображение для кнопки устанавливается с помощью - (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state в состоянии UIControlStateNormal.

  2. Это условие, вероятно, не требуется, но imageOrientation из UIImage равно UIImageOrientationDown.

Задание фонового изображения для двух оставшихся состояний управления должно решить проблему.

UIButton *button = ...
UIImage *image = ...
[button setBackgroundImage:image forState:UIControlStateNormal];
// Specify same image for selected / highlighted states
[button setBackgroundImage:image forState:UIControlStateSelected];
[button setBackgroundImage:image forState:UIControlStateHighlighted];

Обратите внимание:

[button setBackgroundImage:image
                  forState:UIControlStateNormal |
                           UIControlStateSelected |
                           UIControlStateHighlighted];

не работает.

0 голосов
/ 07 декабря 2011

Вы, кажется, не используете - (void)setImage:(UIImage *)image forState:(UIControlState)state в экземпляре UIButton.

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