UIAlertController l'alignement du texte
Est-il un moyen de modifier l'alignement du message affiché à l'intérieur d'un UIAlertController sur iOS 8?
Je crois accès à la sous-vues et de modification pour la UILabel n'est plus possible.
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé avec succès les suivants, pour à la fois l'alignement et le style du texte de UIAlertControllers:
Vous pouvez faire quelque chose de similaire avec le titre, si vous utilisez
"attributedTitle"
, au lieu de"attributedMessage"
Swift 3 mise à jour
Ci-dessus fonctionne toujours en Swift 3, mais le code doit être légèrement modifié pour cela:
Swift 4 mise à jour
UIAlertAction
éléments dansUIAlertController
ainsi, mais il a abouti à une certaine valeur-clé de la conformité et de l'indéfini clé des exceptions et le contrôleur affiche pas.Utiliser le code ci-dessous
Accédez à la sous-vue de l'arbre jusqu'à ce que vous arrivez à la UILabels pour le titre et le message
Cependant, vous pouvez faire une catégorie
Ensuite, vous pouvez aligner le texte comme ceci
NSArray *viewArray = [[[[[[[[[[[[alertController view] subviews] firstObject] subviews] firstObject] subviews] firstObject] subviews] firstObject] subviews] firstObject] subviews];
Qui prend le gâteau pour les plus imbriqués ObjC je n'ai jamais vu o.0La méthode suivante sera de définir l'alignement du texte, tout en conservant la taille de police par défaut.
Swift 4.2 + multiligne chaîne linebreak indentation
J'ai pris @Amos's réponse et en fait une extension pratique:
Ensuite, vous pouvez simplement définir la valeur d'alignement:
myAlert.setMessageAlignment(.left)
Cette propriété expose les champs de texte, donc il pourrait sans doute être utilisé pour configurer:
Remarque: même si il est dit que le bien est
readonly
, elle retourne un tableau de champ de texte les références de l'objet qui peut être utilisé pour modifier les commandes.