【发布时间】:2013-05-29 05:57:09
【问题描述】:
我有一个应用程序,它使用 Storyboard 来显示两个屏幕。第一个是列表(在屏幕截图中称为“Lista”),第二个是地图(“Térkép”)。每个视图都有一个左右导航按钮。按下右键将地图视图推送到导航控制器。后退按钮在地图的viewDidLoad 方法中手动隐藏。
问题是,为什么栏按钮项在每个屏幕上的大小不同?如何控制按钮的大小?
按钮上的图像大小相同。皮肤在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];
【问题讨论】:
-
在我的情况下,这个公式一直对我有用。可能是您单独为条形按钮设置了界限,或者应该存在一些方向问题。
-
对图片的问题总是很感激:)
-
如果您当前正在使用 viewDidLoad,请尝试在 viewWillAppear 中设置按钮
-
Storyboard 中已设置按钮。
标签: iphone ios uinavigationbar uibarbuttonitem