8

我有一个应用程序,它使用 Storyboards 来显示两个屏幕。第一个是列表(在屏幕截图中称为“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];
4

1 回答 1

1

您可以通过在一个 segue 中创建两个相同的 UIBarButtonsItem 来获得两个相同的 UIBarButtonsItem,然后在另一个 segue 中复制粘贴该按钮(至少这在我的情况下有效,但到目前为止我还无法确定问题的根本原因)。

如果直接创建 UIBarButtonItem 不起作用,请在 NavigationItem 中放置一个 UIButton,它会自动创建一个内部带有 UIButton 的 UIBarButtonItem(见下图)。通过这种方式,您可以配置 UIBarButtonItem 中不存在的图像或其他属性。一旦您对 UIButton 的外观(嵌入在 Bar Button 中)感到满意,请将其复制粘贴到不同的 segue,它们应该保持相同的大小。

UIBarButtonItem 与 UIBarButtonItem 内的 UIBarButtonItem 对比

于 2013-06-05T12:06:51.167 回答