Le nouveau UIToolbar
objet utilise activement mise en page basée sur les contraintes, il est donc préférable de substituer - (void)updateConstraints
méthode. De présenter des vues personnalisées sur UIToolbar
objet, il est préférable de sous-classe et ajouter un conteneur personnalisé de vue:
- (UIView *)containerView
{
if (_containerView) {
return _containerView;
}
_containerView = [[UIView alloc] initWithFrame:self.bounds];
_containerView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
return _containerView;
}
Maintenant vous pouvez ajouter votre vues personnalisées pour le conteneur de vue. Pour rendre les vues personnalisées réactif, nous avons besoin de changer l'ordre de la barre d'outils des sous-vues après les contraintes de mise à jour:
- (void)updateConstraints
{
[super updateConstraints];
[self bringSubviewToFront:self.containerView];
}
Notez que si vous utilisez UINavigationController
avec la barre d'outils personnalisée, vous devez forcer la mise à jour de sa mise en page avant d'ajouter votre personnalisé des sous-vues.