所以我使用此代码(ruby运动语法)在我的app委托中成功设置自定义图形(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:如果它有用,我使用this tutorial来学习如何设置导航栏的样式。虽然,你不应该那么需要;我已经向你展示了上面教程中涉及的所有代码^^。
答案 0 :(得分:0)
您可以使用其他条形指标进行横向模式。
UINavigationBar.appearance.setBackgroundImage navbar_image,
forBarMetrics: UIBarMetricsDefault
UINavigationBar.appearance.setBackgroundImage navbar_image_landscape,
forBarMetrics: UIBarMetricsLandscapePhone
其他选项也一样。