1

因此,我使用以下代码(ruby 运动语法)在我的应用程序委托中成功设置了自定义图形(iOS 5):

navbar = UIImage.imageNamed "navbar.png"
navbutton = UIImage.imageNamed("navbutton.png").resizableImageWithCapInsets(UIEdgeInsetsMake(0,5,0,5))
navbackbutton = UIImage.imageNamed("navback.png").resizableImageWithCapInsets(UIEdgeInsetsMake(0,14,0,5))

UINavigationBar.appearance.setBackgroundImage(navbar, forBarMetrics:UIBarMetricsDefault)
UIBarButtonItem.appearance.setBackgroundImage(navbutton, forState:UIControlStateNormal, barMetrics:UIBarMetricsDefault)
UIBarButtonItem.appearance.setBackButtonBackgroundImage(navbackbutton, forState:UIControlStateNormal, barMetrics:UIBarMetricsDefault)

很容易。唯一的问题是,现在我正在添加重定向支持,当视图变为横向时,导航栏图像保持 320px 宽并重复填充屏幕顶部的宽度......按钮被重新定位,但导航栏不是'不是动态的...

我怎样才能解决这个问题?

我知道在定向完成后会调用didRotateFromInterfaceOrientation(orientation),所以如果我需要调用某种 UINavBarRefactor 方法,我认为这就是这样做的地方吗?

PS:如果有帮助,我使用本教程来学习如何样式化导航栏。不过,您不应该需要太多;我已经向您展示了上面那个教程中涉及的所有代码^^。

4

1 回答 1

0

您可以将另一个条形指标用于横向模式。

UINavigationBar.appearance.setBackgroundImage navbar_image,
  forBarMetrics: UIBarMetricsDefault
UINavigationBar.appearance.setBackgroundImage navbar_image_landscape,
  forBarMetrics: UIBarMetricsLandscapePhone

其他选项也一样。

于 2013-07-21T13:11:41.643 回答