我的导航栏出现问题,UIBarButtonItem未正确垂直对齐。我不知道为什么,因为我使用的是简单的UIBarButtonItem,而不是自定义视图。请参阅下面的代码并感谢您的帮助!
UIBarButtonItem *newGameItem = [[UIBarButtonItem alloc] initWithTitle:@"New Game" style:UIBarButtonItemStyleDone target:self action:@selector(newGame)];
self.navigationItem.rightBarButtonItem = newGameItem;
答案 0 :(得分:7)
实际上,有几种方法可以对齐条形按钮。 尝试使用以下方法调整按钮标题位置:
[self.navigationItem.rightBarButtonItem setTitlePositionAdjustment:UIOffsetMake(-10, -10)
forBarMetrics:UIBarMetricsDefault];
-10 -10 - 仅举例来说
或
您可以使用自定义newGameItem
初始化UIButton
。自定义按钮是UIButton的子类,已重写此方法
- (UIEdgeInsets)alignmentRectInsets {
return UIEdgeInsetsMake(0, -10, 0, 15.0f); // here you can play with values to align your button properly
}
然后初始化您的newGameItem
CustomBarButton *button = [CustomBarButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"New game" forState:UIControlStateNormal];
button.frame = CGRectMake (0, 0, 60, 40);
[button addTarget:self action:@selector(newGame) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *newGameItem = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.rightBarButtonItem = newGameItem;
答案 1 :(得分:1)
我在左边的按钮上遇到了同样的问题,我能够在Xcode 6.3.1中修复它:选择按钮(条形按钮项目)右列选项卡“标尺”插入图像顶部值:-54而不是0。 请注意:我的设备是带有iOS 7的iPhone4,该按钮在Xcode中完全就位并且在设备上放错位置,现在它已在设备上就位并放错在Xcode中
答案 2 :(得分:1)
我遇到了类似的问题:我们通过UIAppearance
使用自定义字体用于导航标题和条形按钮项目,在某些情况下,正确的项目是垂直未对齐的。
我可以使用[self.navigationItem setRightBarButtonItem:rightItem animated:YES]
代替属性设置器轻松修复错位。
答案 3 :(得分:0)
不幸的是,关于UIBarButtonItem
垂直间距,您无能为力。我相信您必须在UINavigationBar
上增加标题的字体大小(您也可以使用UIAppearance
执行此操作),或者减少UIBarButtonItem
的字体大小