vertikal ausrichten UINavigationItems
Ich angepasst haben, die UINavigationBar die Höhe auf 100px und ich möchte noch hinzufügen, Schaltflächen auf der benutzerdefinierte bar.
Alles ist gut, außer der-Taste scheint zu wollen, sitzen auf der Unterseite der nav-bar, egal was. Ich kann es nicht mehr zu ausrichten an der Mitte oder oben in der Navigationsleiste.
Hier ist der code, zuerst erstelle ich eine Navigations-controller in dem app-delegate und fügen Sie eine Schaltfläche auf der rechten Seite.
//set main navigation controller
temp *tempc = [[temp alloc] initWithNibName:@"temp" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:tempc];
UIBarButtonItem *navItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:nil action:nil];
[tempc.navigationItem setRightBarButtonItem:navItem];
[self.window addSubview:self.navigationController.view];
[self.window makeKeyAndVisible];
dann habe ich die Größe der Navigationsleiste in die "temp" - view-controller etwa so:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 100.0f);
[self.navigationController.navigationBar setFrame:frame];
[self.navigationController.navigationBar setAutoresizingMask:UIViewAutoresizingFlexibleBottomMargin];
}
Habe ich auch versucht, fügen Sie eine benutzerdefinierte Ansicht auf die rightBarButtonItem aber ich kann T get die hinzugefügte benutzerdefinierte Ansicht zu berühren, die Spitze völlig.
Und den code für diesen unglücklichen Versuch:
//set main navigation controller
temp *tempc = [[temp alloc] initWithNibName:@"temp" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:tempc];
UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 36.0f, 80.0f)];
[customView setBackgroundColor:[UIColor blueColor]];
UIButton *customButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[customButton setFrame:CGRectMake(0, 22.0f, 36.0f, 36.0f)];
[customButton setTitle:@"+" forState:UIControlStateNormal];
[customView addSubview:customButton];
UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithCustomView:customView];
Weiß jemand, wie man vertikal ausrichten UIBarButtonItems auf eine UINavigationBar?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Option 1:
- (void)layoutSubviews
wo Sie positionieren UIBarButtonItemsBeispiel:
innen Unterklasse von UINavigationBar:
view-controller:
Option 2 (einfügen von UIBarButtonItem nicht funktioniert):
Damit verschieben Sie Titel der Seite und alle Tasten bis 20 px:
UIBarButtonItem
e.g[_myBarButtonItem setTitleVerticalPositionAdjustment:-20.0 forBarMetrics:UIBarMetricsDefault];
- ich kann nicht scheinen, um es zu erhalten arbeitend.Die aktuelle akzeptierte Antwort von alhcr (Option 1) funktioniert nicht, wenn Sie nur eine
rightBarButtonItem
und nicht Links. Es ist auch so eine Vermutung über die Untersicht der Bestellung der UINavigationBar ist nicht garantiert und könnte sich sehr wohl ändern in einer zukünftigen iOS-version. Hier ist ein besserer Weg das anpassen der navigation-button-frames:Fand ich die Lösung dieses problem durch Anpassung der Bild-Rand Abstände der custom-Taste. Ich hatte die Anforderung in der app zu erhöhen, die Höhe der navigation bar und nach der Erhöhung der Höhe macht die rightBarButtonItem und leftBarButtonItem Bilder unpositioned problem.
Finden Sie den code unten:-