2011-06-05 56 views
1

我已經設置了一個相當簡單的方法來應用Xcode中的5星評級,它的技術上工作,但有一個我不喜歡並想改變的行爲。我從Xcode的一個廣播組開始,爲開啓和關閉狀態設置自定義圖像,然後爲每個選擇器動作應用一個IBAction。例如,第三個星(無線電)鏈接到以下行動:幫助一個簡單的5星評級控制

-(IBAction) star3Press: (id) sender 
{ 
    [star1 setState:1]; 
    [star2 setState:1]; 
    [star3 setState:1]; 
    [star4 setState:0]; 
    [star5 setState:0]; 
} 

這完美的作品是第一次,但如果我嘗試走下來的明星我點擊星關閉爲好。例如,如果我點擊5號星號,所有5號點亮。如果我然後點擊星號3,星號3,4和5關閉。如果我再次單擊3,則會再次打開。我更喜歡它,如果點擊星號3時,所有5星都只關閉了星號4和星號5.我假設問題是因爲當我點擊星號時,我的IBAction首先被調用,然後註冊命令關閉該單選按鈕。有沒有辦法改變這種行爲?

+0

你肯定的是,當你點擊星3,'star3Press'被調用,而不是'star2Press'(我假設這將是該名稱)? – Saphrosit 2011-06-05 21:59:16

回答

4

你有沒有想過使用NSLevelIndicator?這就是iTunes用於星級控制的原因。星圖是內置的,如果你不喜歡,你可以設置自己的圖像。不需要建立你自己的。

任何行動你調節到具有可查詢指標的當前水平:

- (IBAction) myLevelIndicatorAction:(id)sender { 
    NSInteger currentLevel = [sender integerValue]; 
+0

這正是我正在尋找的...並且更容易設置。感謝您的正確方向! – Kris 2011-06-07 05:06:22