Je veux m'assurer que le texte du bouton s'inscrit dans un UIButton, alors que le UIButton a une taille fixe.
Bien sûr, je peux accéder au titreLabel de UIButton . Dans une étiquette, je définirais autoshrink
sur une échelle de police minimale qui semble correspondre à
self.myButton.titleLabel.adjustsFontSizeToFitWidth = YES;
, mais ne se comporte pas vraiment de la même façon, car cela permet au texte de s’adapter horizontalement aux limites, et non verticalement, sans changer la taille de la police.
Comment puis-je réellement ajuster la taille de police d'une étiquette par programmation pour que le texte tienne dans les limites de l'étiquette (comme indiqué dans Goal dans l'image ci-dessous)?
J'ai déjà essayé
self.myButton.titleLabel.numberOfLines = 0;
self.myButton.titleLabel.minimumScaleFactor = 0.5f;
sans succès, finissait toujours comme dans adjustsFontSizeToFitWidth
sur le côté gauche de la photo ci-dessus.
Edit: La solution doit également être compatible avec iOS 7
self.mybutton.titleLabel.minimumScaleFactor = 0.5f;
self.mybutton.titleLabel.numberOfLines = 0; <-- Or to desired number of lines
self.mybutton.titleLabel.adjustsFontSizeToFitWidth = YES;
... fait le tour, après layoutIfNeeded dans viewDidLoad Comme il se trouve, tous ceux-ci doivent être configurés pour ajuster la taille de la police, pas seulement pour l'adapter au cadre.
mybutton.titleLabel?.minimumScaleFactor = 0.5
mybutton.titleLabel?.numberOfLines = 0 <-- Or to desired number of lines
mybutton.titleLabel?.adjustsFontSizeToFitWidth = true
Vous pouvez également définir un attribut d’exécution défini par l'utilisateur dans Interface Builder pour le bouton où:
titleLabel.adjustsFontSizeToFitWidth = true
Code mis à jour pour Swift 3.0:
yourButton.titleLabel?.minimumScaleFactor = 0.5
yourButton.titleLabel?.numberOfLines = 0
yourButton.titleLabel?.adjustsFontSizeToFitWidth = true
Essayez d'appeler la méthode suivante.
button.titleLabel?.baselineAdjustment = UIBaselineAdjustment.AlignCenters
essaye ça:
[myButton setFont:[[myButton font] fontWithSize:--originalButtonFontSize]];
textWidth = [text sizeWithFont:[myButton font]].width;
}
Dans Xcode-> Ouvrir le storyboard-> Aller à l'attribut d'attributs-> Contrôle-> Alignement-> Choisir deuxième horizontalement et verticalement.
ou
YourButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;