Comment faire UIButton l'alignement du texte center? À l'aide de l'IB
Je ne peux pas définir le titre de UIButton à l'aide de l'IB en tant que centre de. Mon titre est multi-ligne.
Il est donné comme celui-ci
Mais je veux comme celui-ci
J'ai donné de l'espace dans cela, mais je ne veux pas le faire. Comme il n'est pas aligné exactement pour certains cas, et je sais qu'il y est une propriété de UILabel pour régler l'alignement, mais je ne veux pas écrire un code pour ça.. juste envie de mettre tout de l'IB.
Grâce
- Kumar Rathor - essayez par code
self.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;
- Je sais comment le faire en code, mais ce que je voulais est à définir à l'aide de 'IB'.
- Je sais, vous souhaitez définir à l'aide de l'IB. Mais une telle propriété est accessible uniquement via le code.
- Il est accessible via l'IB en rendant attribué mais qui se soucie de ça!
- oui vous avez raison, stackoverflow.com/a/5865500/468724
- Vous pouvez également utiliser le "Saut de Ligne" de la propriété
Vous devez vous connecter pour publier un commentaire.
Cela fera exactement ce que vous attendiez:
Objective-C:
Pour iOS 6 ou plus, c'est
comme expliqué dans tyler53 réponse
Swift:
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Utilisation de la ligne:
Cela devrait centrer le contenu (à l'horizontale).
Et si vous voulez mettre le texte à l'intérieur de l'étiquette au centre, utilisez:
[labelOne setTextAlignment:UITextAlignmentCenter];
Si vous voulez utiliser de l'IB, j'ai un petit exemple ici, qui est lié dans XCode 4, mais doit fournir suffisamment de détails (également à l'esprit, sur le dessus de que les propriétés de l'écran, il affiche l'onglet de propriété. Vous pouvez trouver les mêmes onglets dans XCode 3.x):
Solution1
Vous pouvez définir le chemin de clé dans la table de montage séquentiel
Définir le texte à votre multiligne titre par exemple
hello
⌥ + ↵multiline
Vous devez appuyer sur ⌥ + ↵ pour déplacer le texte à la ligne suivante.
Puis ajoutez le chemin d'accès clé de
titleLabel.textAlignment
commeNumber
et la valeur1
,1
signifieNSTextAlignmentCenter
titleLabel.numberOfLines
commeNumber
et la valeur0
,0
signifie n'importe quel nombre de lignesCe ne sera pas répercuté sur IB/Xcode, mais sera dans le centre au moment de l'exécution (appareil/simulateur)
Si vous voulez voir les changements sur Xcode vous devez faire ce qui suit: (n'oubliez pas, vous pouvez sauter ces étapes)
Sous-classe de la UIButton faire sur le bouton personnalisable:
Attribuer ce concevable sous-classe pour les boutons que vous modifiez:
Solution2
Si vous voulez écrire le code, puis faire un long processus
1.Créer
IBOutlet
pour bouton2.Écrivez du code dans le viewDidLoad
Solution3
Dans la nouvelle version de xcode (le mien est xcode 6.1), nous avons de la propriété attribués titre
Sélectionnez
Attributed
puis sélectionnez le texte et appuyez sur le centre de l'option ci-dessousP. S. Le texte n'était pas venue multiligne pour ce que j'ai à régler le
btn.titleLabel.numberOfLines = 0
Line Breaking = Clip
, il va transformer le texte multilignePour UIButton vous devez utiliser:-
Pour ios 8 et Swift
btn.titleLabel.textAlignment = NSTextAlignment.Center
ou
btn.titleLabel.textAlignment = .Center
Pour ceux d'entre vous qui sont maintenant en utilisant iOS 6 ou supérieur, UITextAlignmentCenter a été désapprouvée. Il est maintenant NSTextAlignmentCenter
EXEMPLE:
mylabel.textAlignment = NSTextAlignmentCenter;
Fonctionne parfaitement.Pour swift 4, xcode 9
En supposant que btn se réfère à un UIButton, pour changer un multi-ligne de légende pour être centré horizontalement, vous pouvez utiliser l'instruction suivante dans iOS 6 ou version ultérieure:
UITextAlignmentCenter
est obsolète dans iOS6Au lieu de cela, vous pouvez utiliser ce code:
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
En fait, vous pouvez le faire dans interface builder.
Vous devez définir le Titre de "Attribué" et ensuite choisissez alignement au centre.
Pour Swift 3.0
Essayer Comme ceci :
UIButton ne prendra pas en charge setTextAlignment. Si Vous avez besoin d'aller avec setContentHorizontalAlignment pour le bouton d'alignement de texte
Pour votre référence
Vous pouvez le faire à partir de story-board.
Sélectionnez votre bouton. Jeu de Saut de Ligne 'retour', la valeur de votre titre de "la Plaine" à " Attribué.
Sélectionnez 'Center' alignement. Cette partie est importante => Cliquez sur ...(Plus) Bouton. Et sélectionnez la ligne de rupture mode de Caractère 'Wrap'.
Pour Swift 4: