更改UIBarButtonItem的外观也会改变导航栏和工具栏的位置?

时间:2013-01-09 12:15:17

标签: ios ios5 uinavigationcontroller uibarbuttonitem uiappearance


我的自定义导航和工具栏再次出现问题: 我使用didFinishLaunchingWithOptions中的外观代理定制了他们的tintColor和字体。最初,应通过将中心设置在viewDidLoad中的可见区域之外来隐藏条形图。通过单击我使用我自己的动画来滑动/滑出条形图。
一切都很好,直到下一步:
我希望UIBarButtonItems具有与我在条形图中使用的相同的字体,所以我回到didFinishLaunchingWithOptions并添加了以下代码:

[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:FONT_HEADER size:0.0],UITextAttributeFont,nil] forState:UIControlStateNormal];

它适用于字体部分,但不知何故它还会将条形设置回viewWillAppear之前的可见位置,因此条形图最初不会被隐藏。我试图找出导致这种不明显的重新定位的原因,但找不到任何连接。我还尝试在稍后的某个位置重置位置,例如viewWillAppear,但这在某种程度上不适用于工具栏。

编辑:所描述的行为仅在具有iOS 5的设备上发生。在iOS6模拟器上,一切似乎都很好。

有没有人暗示我这里出了什么问题或者我如何顺利解决这个问题? 提前致谢

1 个答案:

答案 0 :(得分:0)

   [[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:FONT_HEADER size:0.0],UITextAttributeFont,nil] forState:UIControlStateNormal];

这里的FONT_HEADER是什么?你有没有检查ios 5是否支持这种字体?