Tengo una UINavigationBar personalizada (diferente tamaño, fondo, etc.) que tiene dentro de una vista de título personalizada. He utilizado este código para lograrlo:Posición del título personalizado UINavigationBar
UIView * mainView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, kScreenHeight)];
mainView.backgroundColor = [UIColor yellowColor];
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,0,kScreenWidth,80)];
navBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
UINavigationItem *currentItem = [[UINavigationItem alloc] init];
UILabel *label = [[UILabel alloc] init];
label.font = [UIFont fontWithName:@"Helvetica-Bold" size: 30.0];
[label setBackgroundColor:[UIColor clearColor]];
[label setTextColor:[UIColor whiteColor]];
[label setText:self.title];
[label sizeToFit];
[currentItem setTitleView:label];
[label release];
[navBar pushNavigationItem:currentItem animated:NO];
[currentItem release];
[mainView addSubview:navBar];
[navBar release];
self.view = mainView;
[mainView release];
Sin embargo, mi problema ahora es que, incluso si se añade correctamente el título de la vista personalizada, no se centra verticalmente con la barra de navegación. Lo que me estoy perdiendo?
Gracias!
Para el amor de ... ** código duros no ** los tamaños de pantalla, Apple ha evangelizado sobre esto desde que se lanzó por primera vez el SDK de iPhone. Use '[UIScreen mainScreen] .applicationFrame', y funcionará en iPhone/iPad o en cualquier dispositivo futuro. Con y sin la barra de estado más grande cuando está en una llamada, o tethering. – PeyloW
¡Gracias PeyloW, lo tendremos en cuenta a partir de ahora! –
No use el marco de UIScreen, le dará un tamaño incorrecto cuando su aplicación esté en modo de pantalla dividida en iOS 9. Use el marco de la ventana en su lugar. –