2013-12-23 30 views
1

我有一個UIButton,當我選擇該按鈕時,它仍然處於選中狀態。以下是我的代碼:如何選擇Uibutton

- (IBAction)cloudclick:(UIButton *)sender { 
    UIImage *bgImage = [UIImage imageNamed:@"black_cloud.png"]; 
    UIButton *tmpButton = (UIButton *)[self.view viewWithTag:sender.tag]; 
    [tmpButton setBackgroundImage:bgImage forState:UIControlStateSelected]; 

} 

但是,當我單擊按鈕時它不會保持選中狀態。它會更改背景,但不會保留爲選定按鈕。

+0

僅設置用於「UIControlStateNormal」的圖像。 –

+0

爲什麼'UIButton * tmpButton =(UIButton *)[self.view viewWithTag:sender.tag];''你已經有'UIButton',因爲它是'sender'。這不像你製作它的副本就是任何東西。我會刪除這條線,只使用'發送者' – Popeye

+0

我已經創建了Xib的按鈕,其中已經是一個背景圖像集現在我希望當該按鈕被選中時,它更改爲另一個圖像。如果我把圖像放在Xib按鈕中,在「狀態配置」中選擇屬性,它不會顯示我選擇的圖像 – Ron

回答

7

你有你的代碼

- (IBAction)cloudclick:(UIButton *)sender { 
    ... 
    [tmpButton setSelected:YES]; 
} 
2

使用這行代碼

sender.selected=!sender.selected; 

,並設置不同的圖像DIFF狀態的時候ALLOC後寫一個行,如果你是從代碼使按鈕否則從xib的設置圖像。

1

各種狀態:UIControlStateNormal,UIControlStateSelected和(UIControlStateSelected | UIControlStateHighlighted)實際上都是不同的。如果您希望ShadowImage同時應用於(僅)突出顯示狀態和高亮+選定狀態,則還必須設置:

[button setBackgroundImage: bgImage forState:(UIControlStateHighlighted | UIControlStateSelected)]