web-dev-qa-db-fra.com

Comment aligner le texte à l'intérieur de textView verticalement?

Je veux aligner verticalement le texte à l'intérieur de mon UITextView (donc ce sera au milieu de celui-ci) ... Comment puis-je atteindre cet objectif? Je levai les yeux et ne trouvai aucune réponse qui pourrait m'aider.

Merci d'avance.

9
Volkan

Liez votre textview à votre viewcontroller et nommez-le comme vous voulez (disons textView).

Dans la fonction viewDidLoad, mettez cette ligne:

textView.centerVertically()

Puis sous la dernière accolade de votre classe, mettez cette extension: 

  extension UITextView {

    func centerVertically() {
        let fittingSize = CGSize(width: bounds.width, height: CGFloat.greatestFiniteMagnitude)
        let size = sizeThatFits(fittingSize)
        let topOffset = (bounds.size.height - size.height * zoomScale) / 2
        let positiveTopOffset = max(1, topOffset)
        contentOffset.y = -positiveTopOffset
    }

}

Pour utiliser cette fonction avecSwift2changez simplement CGFloat.greatestFiniteMagnitude en CGFloat.max

28
mike vorisis

Si vous voulez faire cela en utilisant le storyboard, vous pouvez ajouter une vue et à l'intérieur de votre textView. Ensuite, définissez les contraintes que vous avez utilisées pour textView sur la nouvelle vue. Enfin, ajoutez les contraintes suivantes à votre vue texte:

  • (droite et gauche) O et pointez sur la nouvelle vue
  • en utilisant les contraintes d’alignement, ajoutez une contrainte verticale.

     enter image description here

0
Christian