Obtenir la hauteur dynamique UITextView avec la mise en page automatique après le réglage du texte
J'ai un UITextView pas déroulants avec mise en page automatique défini par interface builder, et le texte d'augmenter ou de diminuer de façon dynamique avec pas de problème, mais je veux savoir quelle est la nouvelle UITextView hauteur après la mise en texte, je suis en train de le faire:
NSLog(@"text before: %.2f",self.myText.frame.size.height);
[self.myText setText:self.string];
NSLog(@"text after: %.2f",self.myText.frame.size.height);
c'est le résultat:
text before: 47.50
text after: 47.50
le texte est augmentée dans la vue lorsque je le lance, mais la taille est la même, comment je peux obtenir le réel de la hauteur après la mise en texte?
source d'informationauteur Piero | 2014-11-21
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner:
Voici un exemple d'implémentation sur mon Github: https://github.com/guillaume-algis/SO-27060338
Tout ce que vous avez à faire est de configurer les contraintes à l'exception de la hauteur d'un ET ensemble
textView
'sscrollEnabled
àNO
. La dernière partie est quoi le truc. Votre texte de la vue de la taille automatiquement en fonction de sa valeur de texte.Si vous préférez tout faire par la mise en page automatique:
Dans La Taille De L'Inspecteur:
Ensemble Contenu de la Résistance à la Compression Priorité Verticale à 1000.
Réduire la priorité de la contrainte de la hauteur de votre UITextView. Il suffit de faire moins de 1000.
Dans Les Attributs De L'Inspecteur:
J'ai utilisé le code donné sur le lien suivant Mise en page automatique avec Dynamique UITextView hauteur et cela a fonctionné pour moi 🙂
Swift 3.0
Cette mise en page automatique pour faire son travail.
Utilisez code ci-dessous:
Code Objective-C
Code Swift
Contrairement à UILabel, UITextView a pas intrinsèque de la taille de la propriété. Alors, comment j'ai fait, il a été mis en place
UITextView
hauteur de contrainte, de le brancher via IBOutlet, et changer sa valeur danstextViewDidChange
ou lorsque des modifications du texte.Juste après la modification du texte de l'appel
sélectionnez textview et décochez l'option "Défilement est activé"
sélectionnez textview de menu du haut "de l'Éditeur de > la taille pour s'adapter contenu"
sélectionnez la vue ci-dessous, définissez ses haut contraintes avec le textview bas à ce que la marge que vous souhaitez, puis "Taille de l'Inspecteur",double-cliquez ou modifier la contrainte que vous venez d'ajouter et de définir la "Relation" à "Supérieur ou Égal"
Encore une autre approche consiste à utiliser
Qui permet de faire défiler jusqu'à être activé