3

我的应用程序在 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 处理。
  • 一个像素的位移只发生一次,即当我进入导航控制器的另一个级别时,它不会第二次被推下。
  • 编辑按钮的文本留在原处;只有按钮图形移动。
  • 我尝试在不同的视图控制器(即导航堆栈中的第二个)中启动应用程序。条形按钮项目显示在正常(较高)位置,然后在我推入新视图时向下移动。这似乎表明它与任何特定的视图控制器无关。

有没有人看到这个,知道为什么会这样,或者如何防止按钮移动?谢谢。

4

2 回答 2

3

如果有人遇到同样的问题,我设法通过将 barButton 图像设置为标准 30px 高度(而不是 31,如上所述)来解决问题。

于 2013-03-19T00:16:04.303 回答
1

我在字体大小为 18 时遇到了问题。在我将其更改为 19 之后,移动消失了,导航栏过渡平滑。

于 2015-11-04T16:10:57.693 回答