2010-05-13 6 views
1

J'ai un UITextView et je voudrais seulement le laisser défiler horizontalement seulement.Comment appliquer le défilement horizontal sur UITextView?

Fondamentalement, quand le mot-enveloppe UITextView je veux que l'utilisateur doive faire défiler horizontalement pour pouvoir voir le reste du contenu.

+0

Voulez-vous que le texte en colonnes ou en lignes très longues? –

+0

Je voudrais que le texte soit sur une seule ligne –

Répondre

4

Vous pouvez définir la taille du contenu de la vue de texte sur la hauteur de la vue. Assurez-vous simplement que la largeur du contenu dépasse la largeur de l'image de textView, sinon elle ne défilera pas.

// UITextView* myTextView: gets declared somewhere... 

// The text view (subclass of a UIScrollView) won't go past its content size 
[myTextView setContentSize:CGSizeMake(width, myTextView.frame.size.height)]; 

// Just in case, if you don't want your user bouncing the view up/down 
[myTextView setAlwaysBounceVertical:NO]; 

J'espère que ce que vous recherchez.

4

La solution consiste à désactiver toutes les options de défilement sur l'UITextView lui-même, puis l'intégrer dans un autre UIScrollView. Vous pouvez obtenir le code réel en cherchant sur ce terme "DualScrollTextView" dans google. Vous ne pouvez pas forcer des changements à contentSize pour accomplir ceci - beaucoup ont essayé.

0

Cela a fonctionné pour moi:

self.dishNameLabel.text = @"Here is some very longgggg text to test with"; 
float width = ceil([self.dishNameLabel.text sizeWithAttributes:@{NSFontAttributeName: [UIFont fontWithName:@"WorkSans-SemiBold" size:15.0]}].width); 
self.dishNameLabel.frame = CGRectMake(self.dishNameLabel.frame.origin.x, self.dishNameLabel.frame.origin.y, width, self.dishNameLabel.frame.size.height); 
self.dishNameScrollView.contentSize = CGSizeMake(width, self.dishNameScrollView.frame.size.height); 

Bien sûr, vous devrez remplacer votre texte et la police avec vos spécifications respectives

Questions connexes