【问题标题】:What to subclass (if anything) to customization UINavigationBar's appearance?自定义 UINavigationBar 外观的子类(如果有的话)是什么?
【发布时间】:2015-04-07 00:39:32
【问题描述】:

我想通过在右侧添加自定义背景颜色、后退图标和按钮来自定义 UINavigationBar 的视图。我已经看到了各种解决方案,并希望支持 iOS7 和 iOS8+。执行此操作的标准位置在哪里:

  • 应用委托,
  • UINavigationBar 委托,
  • 一个 UINavigationController 委托,
  • 还是别的什么?

感谢阅读!

【问题讨论】:

    标签: ios ipad uinavigationcontroller uinavigationbar


    【解决方案1】:

    有几种方法可以做到这一点,尽管我可以提供的唯一参考是 Apple 提供的示例。

    导航控制器和它的 UI Bar 是非常可定制的,几乎没有什么是不能改变的(从 UI 角度来看)。

    有几个例子只是说在 AppDelegate 中转储代码。我自己也这样做过。虽然我不能说我遇到了问题,但它确实看起来有点奇怪/混乱。

    所以在这种情况下,我会按照Apple shows us all how to do it 的方式进行操作,并将自定义项添加到您想要查看自定义项的 VC 的 .m 文件中(您应该下载示例项目并使用它)。

    这样做似乎更简洁一些,您可以指定哪个 VC 获得哪种外观(而不是让所有 VC 具有相同的导航栏)。

    提供一些代码来显示如何进行您请求的自定义:

    自定义背景颜色:

    [[UINavigationBar appearance] setBarTintColor:[UIColor blueColor]];
    

    自定义后退图标:

    [[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"some_btn_image.png"]];
    [[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"some_btn_image.png"]];
    

    右侧按钮:

    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Email"]
                                                                      style:UIBarButtonItemStyleBordered target:self action:@selector(action:)];
    
    self.navigationItem.rightBarButtonItem = addButton;
    

    我用我所拥有的数据尽我所能回答了这个问题。我认为一个普遍体面的答案总比没有答案好(我看到你有点不耐烦了。)

    【讨论】:

    • 太棒了,这太棒了。不过,对于自定义背景颜色,我们似乎想要setBarTintColorsetTintColor 会影响后退按钮颜色?
    猜你喜欢
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2014-06-28
    相关资源
    最近更新 更多