我已将此委托添加到我的实现文件中,由于某种原因我无法更改按钮的图像,但是,我可以在控制台中看到日志。
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *) aRecorder successfully:(BOOL)flag{
[PlayButton setImage:[UIImage imageNamed:@"playbutton.png"] forState:0];
NSLog (@"audioRecorderDidFinishRecording:successfully:");
}
这很奇怪,因为我可以在其他地方更改按钮图像,而且我可以在触发事件时在控制台中看到日志。
:-S
以下是我分配代表的方式
avPlayer.delegate = self;
[avPlayer prepareToPlay];
[avPlayer play];
以下是我如何设置播放按钮
@interface OneStepRecordViewController : UIViewController<AVAudioPlayerDelegate>{
........
IBOutlet UIButton *PlayButton;
IBOutlet UIButton *StopButton;
.......
}
答案 0 :(得分:0)
没有足够的声誉来发表评论
请检查您是否设置了正确的UIControlState,
在您的代码中,您的PlayButton可能处于不同的状态,即不在UIControlStateNormal
使用
[PlayButton state];
检查状态。
你可以把支票放在这里
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *) aRecorder successfully:(BOOL)flag{
NSLog(@"Play button state: %d", [PlayButton state]); // this line
[PlayButton setImage:[UIImage imageNamed:@"playbutton.png"] forState:UIControlStateNormal];
NSLog (@"audioRecorderDidFinishRecording:successfully:");
}
另外,为了更好地理解(编程实践),请使用此
[PlayButton setImage:[UIImage imageNamed:@"playbutton.png"] forState:UIControlStateNormal];
而不是“0”幻数。
希望它有所帮助。