我的应用程序在 UINavigationController 中运行。当我从右侧推入一个新的视图控制器时,右上角的 UIBarButtonItem (Edit) 向下移动 1 个像素 - 编辑按钮保持在原位,但图形明显向下移动。
我注意到这仅在我为栏按钮项设置 UIAppearance 代理后才会发生。这是我这样做的代码:
UIImage *barButton = [[UIImage imageNamed:@"navBarBarButton"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
[[UIBarButtonItem appearance] setBackgroundImage:barButton
forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
navBarBarButton.png 是一个 52x31 的条形按钮图像。
其他可能相关的信息:
- 这只发生在 iOS 6 模拟器中——在 iOS 5 中没问题。
- 这个应用程序使用故事板,推送由 segues 处理。
- 一个像素的位移只发生一次,即当我进入导航控制器的另一个级别时,它不会第二次被推下。
- 编辑按钮的文本留在原处;只有按钮图形移动。
- 我尝试在不同的视图控制器(即导航堆栈中的第二个)中启动应用程序。条形按钮项目显示在正常(较高)位置,然后在我推入新视图时向下移动。这似乎表明它与任何特定的视图控制器无关。
有没有人看到这个,知道为什么会这样,或者如何防止按钮移动?谢谢。