2015-10-22 56 views
1

試圖讓我的頭在此附近。我有一個UIButton與調用UIControlEventTouchDown事件:UIButton與UIControlEventTouchDown,圖像將不會更改爲選中,直到手指擡起

- (IBAction)pressButton:(id)sender { 

    NSLog(@"button pressed"); 

    UIButton *button = (UIButton *)sender; 
    button.selected = YES; 
} 

我收到了,消息「按鈕按下」立即如預期。但是,直到我擡起手指,圖像纔會變爲選定的圖像。這是沒有意義的,因爲我一按按鈕就將按鈕設置爲選擇。我在界面生成器中爲我的圖片設置了「默認」,我的圖片在「選擇」下設置了。我曾嘗試在「突出顯示」中添加圖像,但這也不起作用。我在這裏做錯了什麼?

+0

[button setNeedsDisplay];? – Kevin

+0

試過......沒什麼。 – KexAri

回答

0

您可以爲您的按鈕設置highlighted圖片。在故事板的像這樣:enter image description here

+0

嘗試這樣做並且沒有變化 – KexAri

+0

也許這不起作用,因爲你在'UIControlEventTouchDown'事件中手動設置按鈕狀態時會觸發按鈕狀態?嘗試刪除'button.selected = YES' – knutigro

+0

是的!而已!但是,當我鬆開手指時,我想讓圖像保持「開啓」狀態。我怎麼做? – KexAri

0

嘗試用這種

- (IBAction)pressButton:(id)sender { 
NSLog(@"button pressed"); 
UIButton *button = (UIButton *)sender; 
button.selected = YES; 
[button setBackgroundImage:[UIImage imageNamed:@"another.png"] forState:UIControlStateNormal]; 
} 
+0

雖然此代碼可能會回答問題,但爲何和/或此代碼如何回答此問題提供其他上下文可提高其長期價值。 – JAL

1

您已經安裝上UIControlEventTouchDown您的按鈕點擊事件,因此該事件將觸發按鈕的觸下事件和你想設置的圖像所以你必須設置圖像的UIControlState

所以要儘量設置圖像那樣:

[button setImage:[UIImage imageNamed:@"pressed.png"] forState:UIControlStateSelected | UIControlStateHighlighted]; 

可以幫助你。

相關問題