将什么子类化(如果有的话)以自定义 UINavigationBar 的外观?
What to subclass (if anything) to customization UINavigationBar's appearance?
我想通过在右侧添加自定义背景颜色、后退图标和按钮来自定义 UINavigationBar 的视图。我已经看到了各种解决方案,并且希望支持 iOS7 和 iOS8+。执行此操作的标准位置在哪里:
- 应用委托,
- 一个 UINavigationBar 委托,
- 一个 UINavigationController 委托,
- 还是别的?
感谢阅读!
有几种方法可以做到这一点,尽管我可以提供的唯一参考是 Apple 提供的示例。
导航控制器和它的 UI 栏是非常可定制的,几乎没有什么是不能改变的(从 UI 的角度来看)。
有几个例子只是说将代码转储到 AppDelegate 中。我自己也这样做过。虽然我不能说我遇到过问题,但确实有点 odd/cluttered.
所以在这种情况下,我会按照 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;
我用我掌握的数据尽我所能回答了这个问题。我认为一个总体上不错的答案总比没有答案好(我看到你有点不耐烦了。)
我想通过在右侧添加自定义背景颜色、后退图标和按钮来自定义 UINavigationBar 的视图。我已经看到了各种解决方案,并且希望支持 iOS7 和 iOS8+。执行此操作的标准位置在哪里:
- 应用委托,
- 一个 UINavigationBar 委托,
- 一个 UINavigationController 委托,
- 还是别的?
感谢阅读!
有几种方法可以做到这一点,尽管我可以提供的唯一参考是 Apple 提供的示例。
导航控制器和它的 UI 栏是非常可定制的,几乎没有什么是不能改变的(从 UI 的角度来看)。
有几个例子只是说将代码转储到 AppDelegate 中。我自己也这样做过。虽然我不能说我遇到过问题,但确实有点 odd/cluttered.
所以在这种情况下,我会按照 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;
我用我掌握的数据尽我所能回答了这个问题。我认为一个总体上不错的答案总比没有答案好(我看到你有点不耐烦了。)