setImage: forState: не работает в iOS 3.2 - PullRequest
1 голос
/ 01 апреля 2011

Ожидаемое поведение - изменение изображения (с воспроизведения на паузу и с паузы на воспроизведение) при нажатии на действие воспроизведения.Это работает, как и ожидалось в версии 4.x.В версии 3.2 setImage не работает, то есть setImage не устанавливает изображение.Вызов imageForState: UIControlStateNormal возвращает ноль в версии 3.2.Есть идеи?

@interface TestViewController : UIViewController {
  IBOutlet UIButton *playButton;
  BOOL play;
}

- (IBAction) play:(id)sender;

@end


@implementation TestViewController

- (IBAction) play:(id)sender {  
  if (play == YES) {
    [playButton setImage:[UIImage imageNamed:@"pause"] forState:UIControlStateNormal];    
   play = NO;
  } else {
    [playButton setImage:[UIImage imageNamed:@"play"] forState:UIControlStateNormal];    
    play = YES;
  }
  //[playButton imageForState:UIControlStateNormal]

}

@end

Ответы [ 2 ]

0 голосов
/ 27 сентября 2011

UIImage imageNamed принимает имя изображения с расширением, т.е. если вы меняете код

[UIImage imageNamed:@"pause"]

до

[UIImage imageNamed:@"pause.png"] or [UIImage imageNamed:@"pause.jpg"]

ваш код будет работать в соответствии с вашими ожиданиями.

0 голосов
/ 27 сентября 2011

Ваш код выглядит правильно, вы проверили, что вы подключили IBOutlet в файле XIB для своей кнопки?

...