2012-06-04 2 views
7

Я настраиваю кнопку «Назад» на панели навигации с помощью внешнего прокси, также устанавливая атрибуты изображения и текста. Все работает отлично, но кнопка «текст в обратном направлении» не выравнивается по центру.Панель навигации Назад, текст не центр alligined

Вот мой код.

UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] initWithTitle:title style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease]; 
UIImage *buttonBack32 = [[UIImage imageNamed:@"NavigationBackButton"] 
         resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 5)]; 

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack32 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
[[UIBarButtonItem appearance] setTitleTextAttributes: 
[NSDictionary dictionaryWithObjectsAndKeys: 
     [UIColor whiteColor], 
     UITextAttributeTextColor, 
     [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8], 
     UITextAttributeTextShadowColor, 
     [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], 
     UITextAttributeTextShadowOffset, 
    [UIFont fontWithName:@"xxx" size:16.0], 
    UITextAttributeFont, 
    nil] 
              forState:UIControlStateNormal]; 
self.navigationItem.backBarButtonItem = backButton; 

Если я установил размер шрифта «0.0», текст станет слишком маленьким по размеру и не центрируется по центру.

Заранее благодарим за любую помощь.

+0

Вы имеете в виду вертикального выравнивания или выравнивания по горизонтали? –

+0

Я думаю, что попробовать это может помочь не сюр, но я делаю эту вещь в текстовом виде, а также в библиотеке, но не в BarButton, поэтому я просто попробую, а затем опубликую ответ [[UIBarButtonItem появление] setTextAlignment: UITextAlignmentCenter]; :) –

+0

ParasJoshi: он не работает. – fibnochi

ответ

17

Вы можете использовать метод setTitlePositionAdjustment: forBarMetrics: для установки смещения заголовка по мере необходимости. Например:

[[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0.0f, 5.0f) forBarMetrics:UIBarMetricsDefault]; 
+0

Работал для меня (y) –

-4
You can use this : 

UIView* leftContainer = [[UIView alloc] initWithFrame:CGRectMake(0.0, 4.0, 70.0, 44.0)]; 
UIImage *profileImg = [UIImage imageNamed:@"account-btn.png"]; 
UIButton *profilebutton = [UIButton buttonWithType:UIButtonTypeCustom]; 
profilebutton.frame = CGRectMake(0.0, 7.0, 70.0, 30.0); 
[profilebutton setImage:profileImg forState:UIControlStateNormal]; 
[profilebutton addTarget:self action:@selector(profileBtnClicked) forControlEvents:UIControlEventTouchUpInside]; 
[leftContainer addSubview:profilebutton]; 

UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithCustomView:leftContainer]; 
self.navigationItem.leftBarButtonItem = item; 

[leftContainer release]; 
[item release]; 
0

Чтобы настроить текст, я должен был использовать это:

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -1.5) forBarMetrics:UIBarMetricsDefault];