W rzeczywistości istnieją dwa sposoby wyrównania przycisków paska. Spróbuj wyregulować położenie napisów przycisk z tym:
[self.navigationItem.rightBarButtonItem setTitlePositionAdjustment:UIOffsetMake(-10, -10)
forBarMetrics:UIBarMetricsDefault];
-10 -10 - tak na przykład
LUB
można zainicjować swoją newGameItem
ze zwyczajem UIButton
. Przycisk niestandardowy jest podklasą UIButton z tej metody zamienione na
- (UIEdgeInsets)alignmentRectInsets {
return UIEdgeInsetsMake(0, -10, 0, 15.0f); // here you can play with values to align your button properly
}
następnie zainicjować newGameItem
CustomBarButton *button = [CustomBarButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"New game" forState:UIControlStateNormal];
button.frame = CGRectMake (0, 0, 60, 40);
[button addTarget:self action:@selector(newGame) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *newGameItem = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.rightBarButtonItem = newGameItem;
To nie wygląda jak domyślna czcionka dla standardowego UIBarButtonItem. Czy modyfikujesz jakieś cechy czcionki barbutton? Może z UIAppearance? – hgwhittle
Zastanawiasz się, dlaczego "nowa gra" jest nieco ** poniżej ** tytułu "forum"? – CrimsonChris
Tak, używam Avenir Next, ale używam tej czcionki w innej aplikacji i nie ma problemu z paskiem nawigacji. [[Wygląd UIBarButtonItem] setTitleTextAttributes: @ {NSForegroundColorAttributeName: [UIColor whiteColor], NSFontAttributeName: [UIFont fontWithName: @ "Avenir Next" size: 18.0]} forState: UIControlStateNormal]; [[UINavigationBear appearance] setTitleTextAttributes: @ {NSForegroundColorAttributeName: [UIColor whiteColor], NSFontAttributeName: [UIFont fontWithName: @ "AvenirNext-DemiBold" rozmiar: 18.0]}]; –