gpt4 book ai didi

iphone - 用相同的方法更新 UILabel 两次

转载 作者:行者123 更新时间:2023-12-03 20:25:17 25 4
gpt4 key购买 nike

我在弄清楚一次操作中两次更新 UILabel 时遇到了一些麻烦。基本上,用户点击播放按钮来听到声音。当声音播放时,“消息 1”出现在 UILabel 中。声音播放完毕后,同一标签中会出现“消息 2”。当我运行此命令时,标签直接转到“消息 2”。

.h

@interface ViewController : UIViewController
<AVAudioRecorderDelegate, AVAudioPlayerDelegate>
{
AVAudioPlayer *audioPlayer;
UIButton *playButton;
UILabel *answerLabel;

}
@property (nonatomic, retain) IBOutlet UIButton *playButton;
@property (nonatomic, retain) IBOutlet UILabel *answerLabel;
-(IBAction) play;
@end

.m

-(IBAction) play
{
int length = [audioPlayer duration];
[audioPlayer play];
answerLabel.text = @"Message 1";
[NSThread sleepForTimeInterval:length];
answerLabel.text = @"Message 2";
}

最佳答案

我看到您实现了 AVAudioPlayerDelegate 协议(protocol),因此我假设您在某个时刻将播放器的委托(delegate)设置为 self

如果是这种情况,请将您的播放方法更改为以下内容:

-(IBAction) play
{
[audioPlayer play];
answerLabel.text = @"Message 1";
}

然后实现这个方法:

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
answerLabel.text = @"Message 2";
}

关于iphone - 用相同的方法更新 UILabel 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10503885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com