2017-10-02 1 views
3

J'ai une application personnalisée qui inclut un élément de barre personnalisé, avec Swift 3, elle a été dimensionnée de manière appropriée, mais après la mise à jour vers Swift 4, elle n'est plus adaptée aux contraintes fournies. Ceci est mon code:L'élément du bouton de barre personnalisé n'est pas dimensionné correctement

let infoButton = UIButton.init(type: .custom) 
infoButton.setImage(UIImage(named: "info button white.png"), for: UIControlState.normal) 
infoButton.addTarget(self, action: #selector(StartViewController.infoButtonPressed), for: UIControlEvents.touchUpInside) 
infoButton.frame = CGRect(x: 0, y: 0, width: 25, height: 25) 

let barButton = UIBarButtonItem(customView: infoButton) 
self.navigationItem.rightBarButtonItem = barButton 

J'ai essayé de changer les numéros CGRect pour voir s'il y aurait un changement, et il n'y a pas, il est le dimensionnement des limites de la barre de navigation, et franchement semble maintenant assez laid.

enter image description here Des idées sur ce qui a changé dans Swift 4? Je courais Xcode 9.0 (9A235)

+0

Le problème peut être avec iOS 11. J'ai couru l'application sur un autre téléphone exécutant iOS 10.3.2 (14F89) et le bouton d'information est de taille appropriée, en cours d'exécution sur mon premier appareil avec iOS 11.0.1 (15A402) je reçois le problème. – user1698875

Répondre

1

contraintes de réglage Try comme ceci:

infoButton.widthAnchor.constraint(equalToConstant: 25).isActive = true 
infoButton.heightAnchor.constraint(equalToConstant: 25).isActive = true 

Ou utiliser des images de la bonne taille.

+0

Fonctionne comme un charme, merci !! – user1698875

+0

Bonjour @ user1698875, si cette réponse ou toute autre réponse a résolu votre question, veuillez considérer [acceptation] (https://meta.stackexchange.com/q/5234/179419) en cochant la case. Ceci indique à la communauté plus large que vous avez trouvé une solution et donne une certaine réputation à la fois le répondeur et vous-même. Il n'y a aucune obligation de le faire. –