Comment puis-je adapter le text à UIButton?

problème:

La taille du button est suffisante, mais lorsque je change de titre, le text du titre ne peut pas tenir count de la largeur du button. Toute fonction SDK peut résoudre ce problème, ou je dois coder manuellement pour le résoudre?

Veuillez vous référer aux images suivantes.

design dans le file nib. entrez la description de l'image ici

spectacle initial en simulateur entrez la description de l'image ici

quand je change le text du titre entrez la description de l'image ici

essayé quelques façons avant

  1. _button.titleLabel.adjustsFontSizeToFitWidth = YES;
    le path va changer ma taille de police. Je ne peux pas accepter le path.

  2. [_button setTitleEdgeInsets: UIEdgeInsetsMake (10.0, 10.0, 0.0,0.0)];
    la façon de changer la position de l'label seulement, pas la taille de l'label.

  3. [_button.titleLabel sizeToFit];
    le résultat est le même avec l'image (3).

  4. [_button sizeToFit];
    titre déplacé vers le coin supérieur gauche, et le titre rest le même résultat.

Juste confus, la taille de mon button est assez grande, pourquoi la taille du titre est si petite?

Utilisez ceci.

Objectif c

button.titleLabel.numberOfLines = 1; button.titleLabel.adjustsFontSizeToFitWidth = YES; button.titleLabel.lineBreakMode = NSLineBreakByClipping; 

Swift 2.0

 button.titleLabel!.numberOfLines = 0 button.titleLabel!.adjustsFontSizeToFitWidth = true button.titleLabel!.lineBreakMode = NSLineBreakMode.ByWordWrapping 

NOTE: Swift code courtoisie: @Rachel Harvey

Pour les personnes qui rencontrent cette question:

Essayez d'utiliser le setter:

  [self.myButton setTitle:@"Title" forState:UIControlStateNormal]; [self.myButton sizeToFit]; 

Assurez-vous également que l'label ne modifie pas l'espacement ultérieur, car cela semble avoir préséance sur l'ajustement de la taille de la police. Assurez-vous également que minimumScaleFactor <1.

 button.titleLabel.adjustsFontSizeToFitWidth = YES; button.titleLabel.adjustsLetterSpacingToFitWidth = NO; button.titleLabel.minimumScaleFactor = 0.5; 

Voici la version Swift:

  let button = UIButton() button.titleLabel?.numberOfLines = 1 button.titleLabel?.adjustsFontSizeToFitWidth = true button.titleLabel?.lineBreakMode = NSLineBreakMode.ByClipping 

Dans IB, select simplement le button, allez dans le menu de l'éditeur, et choisissez "Size To Fit Content"