Контент изображения iOS UIButtonМигание на TouchUpInside - PullRequest
0 голосов
/ 22 марта 2012

У меня проблема с изображением UIButton, если я установил для imageView contentMode значение UIViewContentModeScaleAspectFill.

UIButton *imageButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 200, 100)];
imageButton.imageView.contentMode = UIViewContentModeScaleAspectFill;
[imageButton setImage:[UIImage imageNamed:@"myImage.jpg"] forState:UIControlStateNormal];
[imageButton addTarget:self action:@selector(doSmth:) forControlEvents:UIControlEventTouchUpInside];

Изображение внутри кнопки масштабируется так, чтобы заполнить всю область кнопки.

После нажатия / нажатия кнопки изображение изменяется (мерцает), как если бы его contentMode был установлен на UIViewContentModeScaleAspectFit.

Кто-нибудь знает, как убрать это мерцание, когда происходит нажатие / касание?

Спасибо!

1 Ответ

1 голос
/ 22 марта 2012

Почему вы устанавливаете режим контента для кнопки imageView? Изображение, установленное для указанного состояния, всегда заполняет размер кнопки. Таким образом, вы должны установить размер рамки кнопки в соответствии с размером изображения, а не устанавливать imageView contentMode

Мерцание может быть подсветкой кнопки. Если вы хотите установить собственное изображение для подсветки, используйте этот код:

[imageButton setImage:buttonHightlightImage forState:UIControlStateHightlighted]
...