UIButton с изображением теряет вновь установленное изображение - PullRequest
2 голосов
/ 03 октября 2009

У меня есть UIButton (пользовательский, с изображением), настроенный в IB, который является IBOutlet в моем коде.

В моем методе viewDidLoad в viewController я пытаюсь изменить существующее изображение UIButton

UIImage *newbuttonimage = [UIImage imageNamed:@"newbuttonimage.png"];
testbutton.imageView.image = newbuttonimage;

ОК, это работает при запуске приложения, но всякий раз, когда вы взаимодействуете с кнопкой (нажмите ее), она меняется на исходное изображение (устанавливается в IB). Во всем проекте нет другого кода для изменения изображений, так что же происходит?

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

Ответы [ 2 ]

9 голосов
/ 03 октября 2009

Вы должны попытаться использовать setImage:forState вместо назначения изображения напрямую; Существует несколько состояний UIButton, и, если они не установлены должным образом, могут привести к нежелательному поведению (сродни тем, которые вы видите).

0 голосов
/ 03 октября 2009

Doh! Я должен был использовать этот код вместо:

UIImage *newbuttonimage = [UIImage imageNamed:@"newbuttonimage.png"];
[testbutton setImage:newbuttonimage forState:UIControlStateNormal];
...