【问题标题】:Navigation bar in iOS 6 look like bar in iOS 7iOS 6 中的导航栏看起来像 iOS 7 中的栏
【发布时间】:2013-10-04 10:57:04
【问题描述】:

有没有办法让 iOS 6 中的导航栏元素(后退按钮)看起来像 iOS 7 中的导航栏元素? 还有按钮和其他 iOS 7 UI 元素。

【问题讨论】:

  • IOS 6可以自定义工具栏
  • 我知道,但有没有更简单的方法?例如,我需要在后退按钮中使用图像使其看起来像 iOS 7

标签: ios6 ios7 uinavigationbar


【解决方案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:];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多