我想添加一个图像到导航栏。香港专业教育学院使用UINavigationBar外观addSubview在iOS中不工作8
[[UINavigationBar appearance] addSubview:logoImage];
似乎与iOS 7的工作,但不与iOS 8的工作,任何人可以请解释为什么发生这种情况,什么是对的iOS 8添加导航栏上的ImageView的替代方式?
我想添加一个图像到导航栏。香港专业教育学院使用UINavigationBar外观addSubview在iOS中不工作8
[[UINavigationBar appearance] addSubview:logoImage];
似乎与iOS 7的工作,但不与iOS 8的工作,任何人可以请解释为什么发生这种情况,什么是对的iOS 8添加导航栏上的ImageView的替代方式?
调用[[UINavigationBar appearance]
返回接收器类的外观代理。 addSubview:
方法未标记为UI_APPEARANCE_SELECTOR
。 UIAppearance的代理方法的一个主要缺点是很难知道哪些选择器兼容。
这篇文章解释了它好一点:http://nshipster.com/uiappearance/ 而这个链接https://gist.github.com/mattt/5135521从文章中显示,被标记为UI_APPEARANCE_SELECTOR
在iOS的7
你应该继承UINavigationBar
并调用[[UINavigationController alloc] initWithNavigationBarClass:toolBarClass:]
方法。将您的新导航栏子类作为第一个参数,并将nil作为第二个参数,以使用标准UIToolbar
。在你的子类中,像你一样添加图像。
另一种可行的方法是获取导航控制器的导航栏并在其中添加子视图,如下所示: [self.navigationController.navigationBar addSubview:logoImage]
。这可能会起作用,但创建自己的子类肯定会给你更多的灵活性。
非常感谢我需要一个快速修复和'[self.navigationController.navigationBar addSubview:logoImage]'完美的工作,所以没有子类的'UINavigationBar' – Bonnie 2014-10-23 08:20:15