我正在使用以下代码从viewController设置rightbarbuttonitem:
UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveDetails)];
self.navigationItem.rightBarButtonItem = item;
出现如图所示:
如您所见,出现的按钮与左侧按钮或标题不垂直对齐。
我还尝试使用提到的here代码调整对齐:
[self.navigationItem.rightBarButtonItem setTitlePositionAdjustment:UIOffsetMake(0, -10) forBarMetrics:UIBarMetricsDefault];
但这会删除自定义字体并将按钮移动得更高。
如何设置对齐的rightbarbuttonitem并使用UIAppearance代理维护自定义字体集?
编辑:
我甚至尝试过使用
[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(saveDetails)];
但结果完全如第一张图片所示。
更新(9月20日):
似乎我必须采用亚历山大的答案,任何人都有更清洁的解决方案吗?
答案 0 :(得分:2)
您可以使用下一个变体:
UIButton *saveButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 80, 20)];
[saveButton addTarget:self action:@selector(saveDetails) forControlEvents:UIControlEventTouchUpInside];
[saveButton setTitle: @"Save" forState:UIControlStateNormal];
[saveButton setTitleEdgeInsets:UIEdgeInsetsMake(5, 0, 0, 0)];
UIBarButtonItem *item =[[UIBarButtonItem alloc] initWithCustomView:saveButton];
self.navigationItem.rightBarButtonItem = item;
答案 1 :(得分:0)
我尝试了答案,但似乎没有奏效。
我的解决方案是将UIButton
添加为UIBarButtonItem
。如果听起来有点混乱,只需将UIButton
从Interface Builder拖到Left
RightBarButtonItem
上navigationBar
或storyboard
的位置。
希望它有所帮助。