2012-05-25 42 views
0

我嘗試在scrollView中製作水平導航菜單。對於菜單中的每個項目,我都有不同的圖像。當我選擇一個項目,我想改變這個項目的背景圖片,但我不知道爲什麼我的代碼不工作:ios水平滾動菜單 - 背景按鈕選擇

for (int i=0; i<12; i++) { 
      UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
      UIImage *normal=[UIImage imageNamed:@"icon1"]; 
      UIImage *selec=[UIImage imageNamed:@"icon1down"]; 
      [btn setFrame:CGRectMake(i*larg, 0, 42.0, 43.0)]; 
      [btn setBackgroundImage:normal forState:UIControlStateNormal]; 
      [btn setBackgroundImage:selec forState:UIControlStateSelected]; 

      [scrollCat addSubview:btn]; 
      cx+=42.0; 
    } 
    [scrollCat setContentSize:CGSizeMake(cx, 43)]; 

是否有這個代碼是一件壞事?

回答

0

嘗試UIControlStateHighlighted而不是UIControlStateSelected。 突出顯示用戶觸摸按鈕時的狀態。 Selected僅用於某些控件,如段;一個自定義按鈕(其中一個說,保持選中狀態)可以/可以使用Selected。

the UIControl_Class docs at developer.apple.com(重點煤礦):

UIControlStateHighlighted

的控制的突出顯示的狀態。當在跟蹤過程中以及觸摸事件時觸摸進入和退出時,控件進入此狀態。 ...

UIControlStateSelected

選擇控制的狀態。 對於許多控件,此狀態對行爲或外觀沒有 影響。但其他子類(例如, UISegmentedControl類)可能會有不同的外觀,具體取決於 的選定狀態。 ...

+0

感謝您的迴應,它運作良好,但只是當我點擊一個項目。如果我想讓按鈕保持第二個背景圖像,直到我點擊另一個項目呢? – Astram56

+0

您可以選擇並突出顯示。請參閱http://stackoverflow.com/questions/1785008/keeping-a-uibutton-selected-after-a-touch – ckhan