2011-04-01 43 views
1

预期的行为是在单击播放动作时更改图像(从播放到暂停,从暂停到播放)。这可以在4.x版本中按预期工作。在版本3.2中,setImage不起作用,意味着setImage不设置图像。调用imageForState:UIControlStateNormal在3.2版本中返回null。有任何想法吗?setImage:forState:在iOS 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 
+0

如果您包含扩展名,例如'@“play.png”',会发生什么? – 2011-04-01 19:05:59

回答

0

您的代码看起来是否正确,您是否检查过您在XIB文件中为您的按钮连接了IBOutlet?

0

UIImageimageNamed需要在扩展即一个形象的名字,如果你改变你的代码

[UIImage imageNamed:@"pause"] 

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

您的代码将工作按照您的期望。

相关问题