2010-04-18 57 views
3

在地圖應用程序中,當您按下左下角的跟蹤按鈕時,它會發光並顯示它已被按下。這使其表現得像一個單選按鈕,移動地圖後它將不會發光。有沒有一種簡單的方法,但按鈕進入按下狀態?如何製作UIBarButtonItem'發光'?

回答

10

將其樣式設置爲UIBarButtonItemStyleDone。

+0

UIBarButtonItemStyleDone是「藍色」按鈕。我不認爲這是一種發光,對吧? – bentford 2011-06-29 23:36:00

+0

嗯,它在技術上並不是輝光,但它是地圖應用程序的功能(如問題中所述)。 – 2011-07-01 10:46:29

+0

這實現了藍色,但不是輝光。 – 2011-11-28 19:29:27

11

我相信你正在尋找UIButton類的showsTouchWhenHighlighted屬性。試試這個。

myButton.showsTouchWhenHighlighted = YES; 
+2

問題是關於一個UIBarButtonItem不是一個UIButton,所以這是不相關的。 – Emil 2011-06-17 23:49:10

+3

從問題的細節來看,情況並非如此。無論如何,你可以用UIButton創建一個UIBarButtonItem,所以我相信我的答案是相關的。 UIBarButtonItem * buttonItem = [[UIBarButtonItem alloc] initWithCustomView:myButton]; – Drewsmits 2011-07-21 20:03:17

+0

我在爲UIButton尋找效果,所以謝謝你的迴應! – mxg 2012-12-06 10:55:50

1

使用UIBarButtonItemStylePlain

UIBarButtonItemStylePlain
點擊時發光。

3

你可以把它customview自定義按鈕是這樣的:

`

UIImage *image = [UIImage imageNamed:@"someimage"]; 
UIImage *imageHL = [UIImage imageNamed:@"someimage_selected"]; 
button = [UIButton buttonWithType:UIButtonTypeCustom]; 

[button setImage:image forState:UIControlStateNormal]; 
[button setImage:imageHL forState:UIControlStateHighlighted]; 
[button addTarget:self action:@selector(doStuff:) forControlEvents:UIControlEventTouchUpInside];  
myBarButtonItem.customView = button; 

`

0

如果你有image/textUIBarButtonSystemItem一個的UIBarButtonItem,然後用UIBarButtonItemStylePlain

barButton.style = UIBarButtonItemStylePlain; 

如果你有一個自定義視圖的UIBarButtonItem,然後,對每個UIButton應添加以下代碼:

uiButton.showsTouchWhenHighlighted = YES;