2017-09-22 1 views
1

J'essaie de définir UIBarButtonItem avec des images de tailles différentes dans la barre de navigation. Je crée donc une vue personnalisée basée sur UIBarButtonItem et définit le cadre de la vue personnalisée pour contraindre la largeur de UIBarButtonItem. Il travaillait bien avant que je mis à jour le logiciel pour iOS 11. Qui Changent le cadre de la vue personnalisée à la contrainte la largeur de la UIBarButtonItem ne semble plus utile sur iOS 11.Contrainte de la taille d'un UIBarButtonItem dans la barre de navigation avec iOS 11

je l'image defaultImage avec 120 * 120:

UIButton *leftCustomButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35, 35)]; 

[leftCustomButton setImage:[UIImage imageNamed:@"defaultImage"] forState:UIControlStateNormal]; 

UIBarButtonItem * leftButtonItem =[[UIBarButtonItem alloc] initWithCustomView:leftCustomButton]; 

self.navigationItem.leftBarButtonItems = @[self.headerIconItem]; 

Sur iOS10, iOS9, l'image de l'élément leftBarButtonItem n'est pas étirée. Il montre est comme:

show on iOS 10

Mais l'image du leftBarButtonItem est tendue sur iOS11. C'est montrer dans l'image ci-dessous.

show on iOS 11

est-il avoir des moyens de contrainte la largeur de UIBarButtonItem dans la barre de navigation sur iOS 11?

Répondre

3

A partir de iOS 11 UIBarButtonItem s sont maintenant classées à l'aide du moteur de mise en page automatique, dans votre cas lors du ciblage iOS 11 vous devriez dire quelque chose comme:

UIButton *leftCustomButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 35, 35)]; 

[leftCustomButton.widthAnchor constraintEqualToConstant:35].active = YES; 
[leftCustomButton.heightAnchor constraintEqualToConstant:35].active = YES; 

[leftCustomButton setImage:[UIImage imageNamed:@"defaultImage"] forState:UIControlStateNormal]; 
UIBarButtonItem * leftButtonItem =[[UIBarButtonItem alloc] initWithCustomView:leftCustomButton]; 
self.navigationItem.leftBarButtonItems = @[self.headerIconItem]; 

Pour plus d'informations, vous devriez voir la Updating Your App for iOS 11 WWDC 2017 session.

+0

C'est utile! Je rattrape la mise à jour, merci! – Stoull