iOS 6 中的导航栏看起来像 iOS 7 中的栏
Posted
技术标签:
【中文标题】iOS 6 中的导航栏看起来像 iOS 7 中的栏【英文标题】:Navigation bar in iOS 6 look like bar in iOS 7 【发布时间】:2013-10-04 10:57:04 【问题描述】:有没有办法让 ios 6 中的导航栏元素(后退按钮)看起来像 iOS 7 中的导航栏元素? 还有按钮和其他 iOS 7 UI 元素。
【问题讨论】:
IOS 6可以自定义工具栏 我知道,但有没有更简单的方法?例如,我需要在后退按钮中使用图像使其看起来像 iOS 7 【参考方案1】:我建议不要将代码放入您需要自定义的每个视图控制器中,而是通过将类似这样的内容放入 App Delegate 中的 application:didFinishLaunchingWithOptions:
方法来为整个应用程序执行此操作
// Nav bar
[[UINavigationBar appearance] setBackgroundImage:[[UIImage imageNamed:@"navBar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 5, 10, 5)] forBarMetrics:UIBarMetricsDefault];
// Back buttons
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"backNavButton.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
// Toolbar
[[UIToolbar appearance] setBackgroundImage:[[UIImage imageNamed:@"toolbar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 5, 10, 5)] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
【讨论】:
Tnx。我会尽快回复的 它非常适合我。顺便问一下,作为后退按钮背景的图片必须是多大的尺寸? @KirillBazarov 大小由您决定,但通常 Apple 建议使图像可拉伸(使用我在上面示例中使用的resizableImageWithCapInsets
方法),以便它们可以根据内容扩展/收缩后退按钮文字说
可调整大小的图像样本:UIImage *backImg = [UIImage imageNamed:@"navback.png"]; UIImage *resizableBackImg = [backImg resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12, 0, 1)];//top,left,bottom, right; [[UIBarButtonItem appearance] setBackButtonBackgroundImage:resizableBackImg forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
请注意,你们这些cmets的顺序不对,应该是右上左下。【参考方案2】:
你可以像这样设置背景图片来自定义导航栏
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"topbar.png"] forBarMetrics:UIBarMetricsDefault];
您可以像这样使用 setLeftBarButtonItems 方法添加自定义栏。
[self.navigationItem setLeftBarButtonItems:];
【讨论】:
以上是关于iOS 6 中的导航栏看起来像 iOS 7 中的栏的主要内容,如果未能解决你的问题,请参考以下文章
iOS 7 中的视图移动到导航栏上方,但在 iOS 6 中可以正常工作