Eigentlich gibt es mehrere Möglichkeiten, die Bar-Tasten auszurichten. Probieren Sie die Taste Titelposition mit diesem anzupassen:
[self.navigationItem.rightBarButtonItem setTitlePositionAdjustment:UIOffsetMake(-10, -10)
forBarMetrics:UIBarMetricsDefault];
-10 -10 - nur zum Beispiel
ODER
Sie Ihre newGameItem
mit benutzerdefinierten UIButton
initialisieren. Die benutzerdefinierte Schaltfläche ist eine Unterklasse von UIButton mit dieser Methode
außer Kraft gesetzt
- (UIEdgeInsets)alignmentRectInsets {
return UIEdgeInsetsMake(0, -10, 0, 15.0f); // here you can play with values to align your button properly
}
dann initialisieren 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;
Das sieht nicht wie die Standardschrift für ein Standard UIBarButtonItem aus. Ändern Sie die Eigenschaften der Schriftart für die Schriftart? Vielleicht mit UIAppearance? – hgwhittle
Sie wundern sich, warum "neues Spiel" ist leicht ** unter ** der "Brett" Titel? – CrimsonChris
Ja, ich benutze Avenir Next, aber ich benutze diese Schriftart in einer anderen App und es gibt kein Problem mit der Navigationsleiste. [[UIBarButtonItem Aussehen] SetTitleTextAttributes: @ {NSForegroundColorAttributeName: [UIColor WhiteColor], NSFontAttributeName: [UIFont fontWithName: @ "Avenir Next" Größe: 18.0]} forState: UIControlStateNormal]; [[UINavigationBar Aussehen] setTitleTextAttributes: @ {NSForegroundColorAttributeName: [UIColor whiteColor], NSFontAttributeName: [UIFont fontWithName: @ "AvenirNext-DemiBold" Größe: 18.0]}]; –