2013-08-26 80 views
0

好吧,所以我有一個應用程序,我正在建設,幾乎完成。我只有一個問題,當我按下按鈕時,它會發出聲音並且按鈕的圖像發生變化。然而,圖像僅在被觸摸或「突出顯示」時發生改變,並且我希望按鈕圖像在聲音效果的持續時間內保持改變,然後在聲音效果之後,我希望它恢復到原始圖像。無論如何,我可以設置UIButton「設置時間」或「突出顯示」選項?如何讓按鈕保持按下狀態?

我感到很尷尬,有時,因爲我似乎被這些最瑣碎的事情被絆倒了,當我處理核心編碼非常好,靠近終點在天時間全的應用程序,但是這是我的第一個應用程序,我我仍然是XCode的新手。我真的很感謝這個社區的幫助,任何推動我前進的答案總是值得讚賞!

我進一步道歉我的問題格式我在我的iPhone上鍵入這個我希望它不是太尷尬或缺乏細節。如果有人需要更多的細節問問!

+0

您可以爲您的按鈕的選定狀態設置圖像,並在touchUpInside中設置屬性selected = YES。在聲音結尾,你可以取消選擇它 – BergP

+0

有沒有辦法讓它自動取消選擇?這樣用戶不必再次按下按鈕即可恢復原始圖像。 – Casey

+0

聲音結束後自動取消選擇,用戶不需要按下按鈕... – BergP

回答

0

1.You不想在突出顯示並選擇狀態圖像的任何反射。所以你只要把相同的圖像對所有國家一樣

[btnClear setBackgroundImage:[UIImage imageNamed:@"blue_button.png"] 
          forState:UIControlStateNormal]; 
[btnClear setBackgroundImage:[UIImage imageNamed:@"blue_button.png"] 
          forState:UIControlStateHighlighted]; 
[btnClear setBackgroundImage:[UIImage imageNamed:@"blue_button.png"] 
          forState:UIControlStateSelected]; 

2.Now,如果你想在聲音停止時的圖像變化不是讓

[btnClear setBackgroundImage:[UIImage imageNamed:@"red_button.png"] 
          forState:UIControlStateNormal]; 
[btnClear setBackgroundImage:[UIImage imageNamed:@"red_button.png"] 
          forState:UIControlStateHighlighted]; 
[btnClear setBackgroundImage:[UIImage imageNamed:@"red_button.png"] 
          forState:UIControlStateSelected]; 

並再次點擊按鈕,你只需撥動圖像與第一個。

1

可能會有所幫助

[btnClear setBackgroundImage:[UIImage imageNamed:@"blue_button.png"] 
          forState:UIControlStateHighlighted]; 

如果這不是在XIB按鈕的屬性選擇的圖像得手,然後使用一個國家從把圖像下面

UIControlStateNormal    , 
    UIControlStateHighlighted   , 
    UIControlStateDisabled    , 
    UIControlStateSelected    , 
    UIControlStateApplication   , 
    UIControlStateReserved    . 
3

,並按下

[(UIButton *)[self.view viewWithTag:buttonTag] setSelected:Yes]; 
0

您可以通過使用某些委託方法在音效上切換背景圖像聲音播放器的聲音。當你完成播放聲音時,改變後面的圖像。

例如

-(void) musicDidFinishPlaying 
{ 
[btn setBackgroundImage:[UIImage imageNamed:@"normalImage.png"] 
          forState:UIControlStateNormal]; 

} 

-(IBAction) buttonClicked:(id)sender 
{ 
[btn setBackgroundImage:[UIImage imageNamed:@"soundImage.png"] 
          forState:UIControlStateNormal]; 
}