2013-06-03 51 views
8

我有一個應用程序,它使用Storyboard來顯示兩個屏幕。第一個是列表(在截圖中稱爲「Lista」),第二個是地圖(「Térkép」)。每個視圖都有一個左側和右側導航按鈕。按下右按鈕將地圖視圖推送到導航控制器。後退按鈕從地圖的viewDidLoad方法手動隱藏。UIBarButtonItem大小不同

List view Map view

的問題是,爲什麼在欄按鈕項目每個屏幕上有不同的大小?我怎樣才能控制按鈕的大小?

按鈕上的圖像尺寸相同。剝皮在AppDelegate通過外觀設置完成:

// navbar background 
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"bg-titlebar.png"] 
            forBarMetrics:UIBarMetricsDefault]; 

// navbar button background 
[[UIBarButtonItem appearance] setBackgroundImage:[[UIImage imageNamed:@"btn-main.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 4.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch] 
             forState:UIControlStateNormal 
             barMetrics:UIBarMetricsDefault]; 
[[UIBarButtonItem appearance] setBackgroundImage:[[UIImage imageNamed:@"btn-main-active.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 4.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch] 
             forState:UIControlStateHighlighted 
             barMetrics:UIBarMetricsDefault]; 

// back button background 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[[UIImage imageNamed:@"btn-back.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 12.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch] 
                forState:UIControlStateNormal 
               barMetrics:UIBarMetricsDefault]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[[UIImage imageNamed:@"btn-back-active.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(4.0, 12.0, 4.0, 4.0) resizingMode:UIImageResizingModeStretch] 
                forState:UIControlStateHighlighted 
               barMetrics:UIBarMetricsDefault]; 
+0

在我的情況下,這個公式總是適合我。可能是你正在給你的酒吧按鈕分開或應該有一些方向問題。 –

+0

有關圖像的問題總是感謝:) – Anupdas

+0

如果您當前正在使用viewDidLoad,請嘗試設置viewWillAppear中的按鈕 –

回答

1

您可以通過在一個賽格瑞創建它獲得兩個相同的UIBarButtonsItem,然後複製粘貼在另一個賽格瑞按鈕(至少這是工作在我的情況,但我避風港到目前爲止,尚無法找出問題的根本原因)。

如果直接創建UIBarButtonItem不起作用,請將UIButton放入NavigationItem中,它將自動創建一個帶有UIButton的UIBarButtonItem(參見下圖)。通過這種方式,您可以配置UIBarButtonItem中不存在的圖像或其他屬性。一旦你滿意你的UIButton(嵌入在Bar Button中)的外觀,複製粘貼到不同的Segue上,它們應該保持相同的大小。

UIBarButtonItem vs UIButton inside UIBarButtonItem

+0

我已經嘗試過,不幸的是沒有幫助:( – gklka

+0

和你試過,而不是滴和UIBarButtonItem,並通過外觀代理設置圖像,以放置UIButton並直接設置圖像嗎?我知道不是很方便,但我希望它可以解決你的問題 – jmg

+0

我相信放入UINavitaionBars的UIButtons會自動變成UIBarButtonItems我也嘗試過從代碼創建UIBarButtonItems,但結果是完全一樣的 – gklka