1

Я установки rightbarbuttonitem в из ViewController, используя следующий код:правый элемент панели кнопок не выровнены по вертикали

UIBarButtonItem *item = [[UIBarButtonItem alloc]initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveDetails)]; 
self.navigationItem.rightBarButtonItem = item; 

Он появляется, как показано на рисунке:

navigationitem

Как вы можете видеть, что кнопка, которая появляется, не выровнена по вертикали ни с помощью ни одного элемента leftbuttonitem или названия.

Я также попытался настроить положение, используя код упомянутый here:

[self.navigationItem.rightBarButtonItem setTitlePositionAdjustment:UIOffsetMake(0, -10) forBarMetrics:UIBarMetricsDefault]; 

Но это удаляет пользовательский шрифт и перемещает кнопку еще выше.

navigation item with adjustment

Как я могу установить rightbarbuttonitem, совместимый и поддерживает пользовательский набор шрифтов с помощью прокси-сервера UIAppearance?

РЕДАКТИРОВАТЬ:

Я даже попытался с помощью

[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(saveDetails)]; 

но результат точно так, как показано на первом изображении.

UPDATE (20 сентября):

Кажется, что я должен пойти с ответом Александра, кто-нибудь с более чистым раствором?

+0

Использование systemBarButtonItem с 'UIBarButtonSystemItemSave' не в ваших выборках? –

+0

Ну, я узнал код для этого после публикации вопроса. Тем не менее, это практически то же самое, что и мой исходный код. – ZeMoon

ответ

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; 
+0

Я сделал, и результаты лучше. Это будет моим последним средством, так как потребуется некоторое время, чтобы настроить кнопку на правильное положение. – ZeMoon

+0

Добро пожаловать! –

0

Я попытался ответить, но, похоже, не работает.

Решение для меня добавляло UIButton как UIBarButtonItem. Если это звучит запутанно, просто перетащите UIButton с Interface Builder в положение Left или RightBarButtonItem на navigationBar в storyboard.

Надеюсь, это поможет.