2014-11-16 41 views
0

嗨我試圖設置一個自定義樣式到這個UIBarButton,但我不能得到它的工作,這是怎麼做到的?如何爲此UIBarButtonItemStyle創建自定義設計?

UIBarButtonItem *theatersNav = [[UIBarButtonItem alloc] initWithTitle:@"THEATERS" 
style:(UIBarButtonItemStyleDone) target:self action:@selector(theatersNavAction:)]; 

我已經得到了一個背景PIC,但我不縫能夠更改文本

UIImage *userImage = [UIImage imageNamed:@"heart-normal"]; 
UIImage *userImageHighlighted = [UIImage imageNamed:@"heart-highlighted.png"]; 

[[UIBarButtonItem appearance] setBackgroundImage:userImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

[[UIBarButtonItem appearance] setBackgroundImage:userImageHighlighted forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; 
+0

你想要什麼風格?你有什麼企圖? – rmaddy

+0

改變字體和顏色 – josef

+0

在不同的統計突出顯示,正常 – josef

回答

1

的字體,顏色和sixe當您使用[UIBarButtonItem appearance]中,設置適用於您創建的所有新的UIBarButtonItem實例。它對任何現有的UIBarButtonItem實例都沒有影響。

如果您只想將設置應用於單個按鈕,請勿使用[UIBarButtonItem appearance]。將設置直接應用到您想要設置樣式的按鈕。

如果要將設置應用於所有按鈕,請在創建任何按鈕之前使用[UIBarButtonItem appearance]

假設你想要的風格只是一個按鈕,你想:

UIBarButtonItem *theatersNav = [[UIBarButtonItem alloc] initWithTitle:@"THEATERS" style:(UIBarButtonItemStyleDone) target:self action:@selector(theatersNavAction:)]; 

UIImage *userImage = [UIImage imageNamed:@"heart-normal"]; 
UIImage *userImageHighlighted = [UIImage imageNamed:@"heart-highlighted.png"]; 

[theatersNav setBackgroundImage:userImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[theatersNav setBackgroundImage:userImageHighlighted forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; 
+0

不錯,謝謝,我該如何改變所有UIBarButtonItem的字體,顏色和大小? – josef

+0

使用'setTitleTextAttributes:forState:'方法。僅供參考 - 不要忘記更新/接受有用的答案。 – rmaddy

+0

非常感謝!我可以將所有UIBarButtonItem設置爲具有相同的字體,還是必須爲每個按鈕添加字體? – josef