2015-03-15 1 views
1

Вот моя навигационная панельИзменение вертикального положения UIBarButtonItem на прошивке 8.2

Image link

У меня был проблема об изменении вертикального положения настройки UIBarButtonItem на моей навигационной панели. Я хотел бы, чтобы переместить кнопку пункт «Настройки» вниз

Вот мой код

UIBarButtonItem *settingsItem = [[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStylePlain target:self action:nil]; 
self.navItem.rightBarButtonItem = settingsItem; 
    [[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0,-10) forBarMetrics:UIBarMetricsDefault]; 

я попытался его снова и снова. Казалось, что это не работа

Может ли кто-нибудь предложить мне, как переместить кнопку «Настройки» вниз?

+0

Каков код, где вы добавляете кнопку настроек в элемент NavigationBar? – DilumN

+0

Это мой код [код] UIBarButtonItem * settingsItem = [[UIBarButtonItem alloc] initWithTitle: @ «Настройки»: UIBarButtonItemStylePlain target: self action: nil]; self.navItem.rightBarButtonItem = settingsItem; [/ code] –

ответ

3

Вы можете легко добавить пользовательскую кнопку на свой NavigationBarItem, Вот так,

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; //create custom Button 
    [button setTitle:@"Settings" forState:UIControlStateNormal]; 
    [button.titleLabel setFont:[UIFont systemFontOfSize:14.0]]; 
    [button setTitleColor:[UIColor colorWithRed:179.0/255.0 green:40.0/255.0 blue:18.0/255.0 alpha:1] forState:UIControlStateNormal]; 
    button.frame = CGRectMake(0, 0, 50, 20); //Button frame 
    [button addTarget:self action:@selector(yourCustomSelectorHere) forControlEvents:UIControlEventTouchUpInside]; //Add action method to the button here 
    UIView *backButtonView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 63, 33)]; 
    backButtonView.bounds = CGRectOffset(backButtonView.bounds, -14, -7); 
    [backButtonView addSubview:button]; 
    UIBarButtonItem *barBtnItem = [[UIBarButtonItem alloc]initWithCustomView: backButtonView]; //set button as UIBarButtonItem 
    self.navigationItem.rightBarButtonItem = barBtnItem; //set barBtnItem to rightBarButtonItem 

Изменяя backButtonView.bounds значения вы можете изменить происхождение кнопки

+0

Я пытался использовать свой путь, но он не работал, как мой путь до –

+0

Я хотел бы переместить «настройки» вниз, но когда я пробовал свой путь, он не изменился. –

+0

Не знаю. Я хотел бы переместить его на один уровень с названием «iRestaurant» –

1

цит документации яблока на UIAppearance протокола

iOS применяет изменения внешнего вида, когда представление входит в окно, оно не изменить апелляцию который уже находится в окне.

Так что, если ваш код настройки UIBarButtonItem появляется после кода назначения navigationItem. Это не сработает

+0

Я пробовал это, но не работал –