UINavigationBar ios8 的 UIAppearance

Posted

技术标签:

【中文标题】UINavigationBar ios8 的 UIAppearance【英文标题】:UIAppearance for UINavigationBar ios8 【发布时间】:2015-05-12 10:54:37 【问题描述】:

目前在我的应用程序中,我已经实现了自定义视图来代替 UINavigationBar。但是有14-15个屏幕。所以我反复为每个屏幕创建了那个顶视图。

因此,在寻找解决方案以避免这种重复时。我遇到了 UIAppearance 的概念。但我不知道如何实现它。我也了解了它的一些基本概念,但我仍然很困惑。

我的顶视图对于每个屏幕都有所不同。就像在 4-5 屏幕中一样,有两个按钮(左侧的后退按钮和右侧的呼叫按钮),中间有一个标签。

然后在其他4-5个屏幕中有两个按钮(左侧的取消按钮和右侧的呼叫按钮),中间有一个标签。

然后在其他2-3个屏幕中有两个按钮(左侧菜单按钮和右侧呼叫按钮),中间有一个标签和图标。

谁能告诉我如何使用 UIAppearance 来实现它? 提前致谢!

【问题讨论】:

你能展示一些你已经尝试过的代码吗? 那么你想用 UIAppearence 改变什么? 据我了解,他想用 UIAppearance 在他的 UINavigationBar 中设置他的 UIButton,这是不可能的。 好的。明白你的意思了。所以使用 UIAppearance 我只能设置 Bar 的背景颜色。然后是标题的字体样式、颜色等...我无法使用 UIAppearance 添加按钮。我理解正确吗? 【参考方案1】:

您不能通过 UIAppearance 设置按钮。如果您在每个页面上设置 titleTextAttributes(例如字体、大小和颜色),您可以通过 UINavigationBar 外观来实现,如下所示:

[[UINavigationBar appearance] setTitleTextAttributes:attributes];

属性指针是一个 NSDictionary,其中包含您的 textAttributes(NSFontAttributeName、NSForegroundColorAttributeName 等)

【讨论】:

感谢您的回答。

以上是关于UINavigationBar ios8 的 UIAppearance的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationBar 外观 addSubview 在 iOS 8 中不起作用

当 MPMoviePlayerController 退出全屏时 UINavigationBar 错位(ios 8 问题)

UINavigationBar 标题文本部分显示在屏幕上

iOS 8 中 UITableViewController 中的透明 UINavigationBar

UISearchBar 的宽度在嵌入 UINavigationBar 时不会改变

UI NavBar高度的自定义(不同视图需要不同高度的nav bar)