2012-06-04 16 views
7

Dostosowuję przycisk Wstecz w pasku nawigacji, korzystając z proxy wyglądu, a także ustawiając atrybuty obrazu i tekstu. Wszystko działa dobrze, ale tekst w przycisku Wstecz nie jest wyrównany do środka.Przycisk Wstecz paska nawigacyjnego, tekst nie jest przypisany do środka

Oto mój kod.

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; 

Jeśli ustawię rozmiar czcionki "0.0", wówczas tekst stanie się zbyt mały i nadal nie wyśrodkowany.

Z góry dziękuję za pomoc.

+0

Czy odwołując się do pionowego lub poziomego wyrównania? –

+0

Myślę, że spróbuj tego nie może pomóc, ale robię to w textview i również lable, ale nie w BarButton, więc spróbuję, a następnie opublikować odpowiedź [[Wygląd UIBarButtonItem] setTextAlignment: UITextAlignmentCenter]; :) –

+0

ParasJoshi: to nie zadziałało. – fibnochi

Odpowiedz

17

Można użyć metody setTitlePositionAdjustment: forBarMetrics:, aby ustawić przesunięcie tytułu zgodnie z wymaganiami. Na przykład:

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

Pracowałem dla mnie (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

Aby dopasować tekst aż musiałem użyć tego:

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