出于某种原因,当我设置为uibarbutton项目自定义背景图片后的UIBarButtonItem自定义背景外观“跳”:翻动过渡
UIImage *button30 = [[UIImage imageNamed:@"nav_bar_button_orange.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
[[UIBarButtonItem appearance] setBackgroundImage:button30 forState:UIControlStateNormal
barMetrics:UIBarMetricsDefault];
我的按钮是“跳跃”或更新它的宽度(或者更准确的在文本的每一边填充)水平翻转。
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain handler:^(id sender) {
[self dismissViewControllerAnimated:YES completion:nil];
}];
忽略处理程序位,我正在使用BlocksKit。
你可以看到它发生在这里:http://screencast.com/t/HZRBS70OT6wt
附加信息
它甚至做到这一点的时候,我把故事板的,而不是代码到位的按钮。似乎只发生在水平翻转。
原因:
显然它是与使用自定义字体。几乎就像它一开始没有计算宽度。
示例项目
Recreated the problem in this sample project。如果有人知道如何解决这个问题,会很乐意。不能相信没有人遇到它。
你在哪里运行self.navigationItem.leftBarButtonItem代码,在viewDidLoad中? – 2013-03-07 02:02:02
@PatrickTescher是在viewDidLoad中。 – 2013-03-07 03:12:14
它几乎看起来像它在后退按钮和常规按钮之间切换。也许尝试seding setBackgroundVerticalPositionAdjustment:forBarMetrics: – 2013-03-07 18:30:44