Je ne peux pas définir le titre d'UIButton en utilisant IB comme centre. Mon titre est multi-lignes.
C'est donner comme celui-ci
Mais je veux comme celui-ci
J'ai donné de l'espace là-dedans mais je ne veux pas faire ça. Comme il n'est pas aligné exactement dans certains cas et je sais qu'il existe une propriété de UILabel pour définir l'alignement, mais je ne veux pas écrire de code pour cela .. je veux juste tout définir à partir de IB.
Merci
ios
objective-c
uibutton
interface-builder
Inder Kumar Rathore
la source
la source
self.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;
Réponses:
Cela fera exactement ce que vous attendiez:
Objectif c:
Pour iOS 6 ou supérieur, c'est
comme expliqué dans la réponse de tyler53
Rapide:
Swift 4.x et supérieur
la source
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Utilisez la ligne:
Cela devrait centrer le contenu (horizontalement).
Et si vous souhaitez également placer le texte à l'intérieur de l'étiquette au centre, utilisez:
[labelOne setTextAlignment:UITextAlignmentCenter];
Si vous souhaitez utiliser IB, j'ai un petit exemple ici qui est lié à XCode 4 mais qui devrait fournir suffisamment de détails (attention également, en haut de cet écran de propriétés, il affiche l'onglet de propriété. Vous pouvez trouver les mêmes onglets dans XCode 3.x):
la source
Solution1
Vous pouvez définir le chemin clé dans le storyboard
Définissez le texte sur votre titre multiligne, par exemple
hello
⌥ +↵multiline
Vous devez appuyer sur ⌥ + ↵pour déplacer le texte sur la ligne suivante.
Ensuite, ajoutez le chemin clé
titleLabel.textAlignment
asNumber
et valeur1
,1
signifieNSTextAlignmentCenter
titleLabel.numberOfLines
asNumber
et valeur0
,0
signifie n'importe quel nombre de lignesCela ne sera pas reflété sur IB / Xcode, mais sera au centre au moment de l'exécution (appareil / simulateur)
Si vous souhaitez voir les modifications sur Xcode, vous devez procéder comme suit: (rappelez-vous que vous pouvez ignorer ces étapes)
Sous-classez l'UIButton pour rendre le bouton concevable:
Attribuez cette sous-classe personnalisable aux boutons que vous modifiez:
Solution2
Si vous voulez écrire le code, faites le long processus
1.Créer
IBOutlet
pour le bouton2.Écrire le code dans viewDidLoad
Solution3
Dans la version plus récente de xcode (le mien est xcode 6.1), nous avons le titre attribué à la propriété
Sélectionnez
Attributed
puis sélectionnez le texte et appuyez sur l'option centrale ci-dessousPS Le texte ne venait pas multiligne pour cela je dois définir le
btn.titleLabel.numberOfLines = 0
la source
Line Breaking = Clip
, cela transformera le texte en multilignebtn.titleLabel.textAlignment
, ça marche très bien.Pour UIButton, vous devez utiliser: -
la source
Pour ios 8 et Swift
btn.titleLabel.textAlignment = NSTextAlignment.Center
ou
btn.titleLabel.textAlignment = .Center
la source
Pour ceux d'entre vous qui utilisent maintenant iOS 6 ou supérieur, UITextAlignmentCenter est obsolète. C'est maintenant NSTextAlignmentCenter
EXEMPLE:
mylabel.textAlignment = NSTextAlignmentCenter;
Fonctionne parfaitement.la source
Pour swift 4, xcode 9
la source
En supposant que btn fait référence à un UIButton, pour modifier une légende sur plusieurs lignes pour qu'elle soit centrée horizontalement, vous pouvez utiliser l'instruction suivante dans iOS 6 ou version ultérieure:
la source
UITextAlignmentCenter
est obsolète dans iOS6Au lieu de cela, vous pouvez utiliser ce code:
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
la source
Pour Swift 3.0
la source
Pour Swift 4:
la source
En fait, vous pouvez le faire dans le générateur d'interface.
Vous devez définir le titre sur "Attribué", puis choisir l'alignement au centre.
la source
Essayez comme ceci:
la source
Vous pouvez le faire à partir du storyboard. Sélectionnez votre bouton. Définissez le saut de ligne «Word Wrap», définissez votre titre «Plain» sur «Attribué». Sélectionnez «Alignement au centre». Cette partie est importante => Cliquez sur le bouton ... (Plus). Et sélectionnez le mode de saut de ligne sur 'Character Wrap'.
la source
UIButton ne prend pas en charge setTextAlignment. Vous devez donc utiliser setContentHorizontalAlignment pour l'alignement du texte des boutons
Pour votre référence
la source