2009-08-12 6 views
0

J'affiche du texte à partir d'une base de données sqlite3 et souhaite que l'UITextView se redimensionne automatiquement en fonction de la quantité de texte. Je peux le faire très bien comme suit:Redimensionner un UITextView avec une hauteur maximale

TextLabel.scrollEnabled = YES; 
TextLabel.userInteractionEnabled = YES; 

[TextLabel setFrame:CGRectMake(55.10, 26.15, TextLabel.contentSize.width, 
              TextLabel.contentSize.height)]; 

Cela fonctionne très bien. Je me bats en essayant de définir une hauteur maximale. Par conséquent, UITextView redimensionnera le texte à moins qu'il n'atteigne une hauteur maximale, auquel cas l'utilisateur devra utiliser la barre de défilement pour afficher le texte restant.

Toute aide serait très appréciée

Répondre

1

Voici un moyen de découvrir la hauteur souhaitée pour un texte multiligne:

int myWidth = 300; 
int maxHeight = 9999; 
NSString *myString = @"lorem ipsum dolor yadda"; 
UIFont *myFont = [UIFont fontWithName:@"Helvetica" size:14]; 
CGSize myStringSize = [myString sizeWithFont:myFont 
          constrainedToSize:CGSizeMake(myWidth, maxHeight) 
           lineBreakMode:textLabel.lineBreakMode]; 

textLabel.frame = CGRectMake(10, 10, myWidth, myStringSize.height); 

Je suis arrivé ce de la réponse de Nevan à cette question précédente:

Référence: Apple's docs on NSString UIKit additions.

Questions connexes