我會嘗試盡我所能地解釋我的問題。 我有一架鋼琴,可以播放並錄製歌曲,你彈奏的每一個鋼琴按鈕都會突出顯示。問題是我有另一個按鈕來播放我錄製的歌曲,但我想要的是突出顯示正在播放的鋼琴的每個按鈕。 下面是函數的一部分,我已經編碼:功能在iOS中結束之前的高亮按鈕
- (IBAction)play:(id)sender
{
for(NSString *string in [Singleton sharedInstance].notesMusicals)
if([string isEqualToString:@"doMenor"]){
UIImage *buttonImage = [UIImage imageNamed:@"do-menor_ON.png"];
[doMenorButton setImage:buttonImage forState:UIControlStateNormal];
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle,(CFStringRef) @"Do_m", CFSTR ("mp3"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
//doMenorButton.highlighted = YES;
sleep(1);
}
else if([string isEqualToString:@"Re"]){
UIImage *buttonImage = [UIImage imageNamed:@"do-menor_OFF.png"];
[doMenorButton setImage:buttonImage forState:UIControlStateNormal];
UIImage *buttonImage1 = [UIImage imageNamed:@"re_ON.png"];
[reButton setImage:buttonImage1 forState:UIControlStateNormal];
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle,(CFStringRef) @"Re", CFSTR ("mp3"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
sleep(1);
}
你可以看到,在每一個音符,我強調的是音符的按鈕,但我有問題是按鈕只強調一次功能結束,所以我的筆記將在旋律完成後突出顯示。 我希望有人能幫助我。
UI元素只能在主線程上進行更新,而不是在後臺線程。所以這是行不通的。 – 2012-08-15 11:35:20