Sono stato in grado di modificare la posizione verticale dell'icona del pulsante Indietro ma non il testo.Cambia la posizione verticale del testo del pulsante Indietro in UINavigationBar
che sto utilizzando il metodo layoutSubviews in UINavigationBar:
- (void)layoutSubviews {
[super layoutSubviews];
BOOL fixed = NO;
NSArray *classNamesToReposition = @[@"_UINavigationBarBackIndicatorView", @"UINavigationButton", @"UINavigationItemButtonView"];
for (UIView *view in [self subviews]) {
if ([classNamesToReposition containsObject:NSStringFromClass([view class])] && !fixed) {
CGRect frame = [view frame];
if ([NSStringFromClass([view class]) isEqualToString:@"_UINavigationBarBackIndicatorView"]) {
frame.origin.y = 14.5;
} else if ([NSStringFromClass([view class]) isEqualToString:@"UINavigationButton"]) {
frame.origin.y = 9.0;
} else if ([NSStringFromClass([view class]) isEqualToString:@"UINavigationItemButtonView"]) {
frame.origin.y = 5.0;
}
[view setFrame:frame];
}
}
}
Il problema è che ogni modifica fotogramma che faccio sul UINavigationItemButtonView non sembra avere alcun effetto, né alcun cambiamento cornice faccio su di esso è UILabel visualizzazione secondaria questo è il vero testo del pulsante. Quando registro le viste, i fotogrammi sembrano cambiare ma il testo non si muove nella mia vista. Che cosa sto facendo di sbagliato?
Jack, hai provato a mettere quel codice in 'viewDidAppear:' invece? Ho testato un mio progetto e imposta la posizione y. – carlodurso