2012-12-27 13 views
7

Ich möchte einen Absatz in UITextView anzeigen. Ich kann den Inhalt eines Absatzes in die Textansicht einfügen, aber ich kann nicht scrollen UITextView (Ein Teil des Inhalts ist nicht sichtbar, da er nicht scrollt).UITextView scrollt nicht

Was ich versuche zu tun ist:

CGRect frame = CGRectMake(0, 0, 320, 480); 
//allocate view 
self.view = [[UIView alloc]initWithFrame:frame];textview = [[UITextView alloc]initWithFrame:CGRectMake(30, 200, 275, 400)]; 
[textview setFont:[UIFont fontWithName:@"Arial" size:12]]; 
[textview setScrollEnabled:YES]; 
[textview setUserInteractionEnabled:NO]; 
[textview setBackgroundColor:[UIColor clearColor]]; 
//[textview setText:@"Hi,I'm working fine with this space"]; 
[self.view addSubview:textview]; 

In diesem Fall Bildlauf aktiviert ist. Kann mir jemand sagen, warum es nicht scrollt?

+3

... oder entfernen Sie einfach die Linie, auf der Sie die '' userInteractionEnabled' zu NO' gesetzt. –

+2

Wenn Sie '[textview setUserInteractionEnabled: NO];' beibehalten, wie wird es Ihrer Meinung nach funktionieren? Sie müssen es entfernen, um Benutzerinteraktion zu ermöglichen. – iDev

+1

Ich weiß nicht, warum Sie hinzugefügt haben: [textview setUserInteractionEnabled: NO]; Mach es einfach ja. – Bhavin

Antwort

13

gesetzt [textview setUserInteractionEnabled:TRUE]; und ich denke, Sie Tastatur nicht wollen, um Pop-up dann können Sie die Tastatur verstecken durch die Implementierung der uitextview Delegate Methode -(void)textViewDidBeginEditing:(UITextView *)textView{[textView resignFirstResponder];

+0

und setzen Sie auch den Delegaten in Sie Code textview.delegate = selbst; und fügen Sie den Delegaten UITextViewDelegate in Ihrer .h-Datei hinzu. – Ahsan

+0

Ich habe die Antwort von Ihnen Menschen implementiert. Aber nichts hat für mich gearbeitet. – bapi

+0

Entweder scrollt es nicht oder die Tastatur zeigt immer noch ..? Und auch der Code, den Sie eingefügt haben, hat [textview setUserInteractionEnabled: NO], haben Sie das Nein zu Ja geändert? – Ahsan

7

gesetzt YES für setUserInteractionEnabled Eigenschaft UITextView

Satz dieser Linie

[textview setUserInteractionEnabled:YES]; 

statt

[textview setUserInteractionEnabled:NO]; 
+0

@bapirout hey dude Hier setzen Sie UserIntection ist Nein dann hier Benutzer Touch-Ereignis für Ihre diese Textansicht wird nicht erkannt, so dass diese Textansicht nicht scrollen, so nur mit JA einstellen und es funktioniert othervise nur die Zeile kommentieren [ textview setUserInteractionEnabled: NEIN]; oder entferne diese Zeile .. :) –

+0

@bapirout es funktioniert nicht ?? setze auch zuerst den Rahmen klein und versuche es dann, gib einfach Rect wie CGRect frame = CGRectMake (0, 0, 320, 200); versuchen Sie dies und post Kommentar .. –

2

Set UserInteractionEnabled als YES.

2

Fügen Sie diese Zeile: [textview setUserInteractionEnabled:YES]; statt dessen:

[textview setUserInteractionEnabled:NO]; 
2

diesen Code einfügen

CGRect frame = CGRectMake(0, 0, 320, 480); 
//allocate view 
self.view = [[UIView alloc]initWithFrame:frame];textview = [[UITextView alloc]initWithFrame:CGRectMake(30, 200, 275, 400)]; 
[textview setFont:[UIFont fontWithName:@"Arial" size:12]]; 
[textview setScrollEnabled:YES]; 
[textview setUserInteractionEnabled:YES]; 
[textview setBackgroundColor:[UIColor clearColor]]; 
//[textview setText:@"Hi,I'm working fine with this space"]; 
[self.view addSubview:textview]; 
+0

Ich implementierte die Antwort von Ihnen gegeben people.Aber, nichts hat für mich funktioniert.Hinweis: Meine Textansicht ist mit segmentierten Steuerelement gebunden.Jeder der Absatz wird je nach ausgewähltem Segment sichtbar sein. – bapi

+0

@bapirout machen Sie Ihre Eltern Ansicht Eigenschaft auf clipSubviews = YES und dann überprüfen und lassen Sie mich wissen –

+0

@bapirout: Funktioniert es –

0

Ich hatte das gleiche Problem, und ich hatte setscrollable und Benutzer Interaktion aktiviert auf TRUE. Es stellte sich heraus, dass es ein Problem mit Constraints war. Um dies zu beheben, klicken Sie auf Ihren View-Controller in Ihrem Storyboard (das Batteriesymbol oben rechts), dann gehen Sie zu "Editor" -> "Auto Layout-Probleme beheben" -> "Fehlende Einschränkungen hinzufügen". Das Problem wurde für mich behoben!

0

BAPI-Router, Es gibt eine Eigenschaft für die Benutzerinteraktion mit textView. Sie haben es auf Nein gesetzt. Wenn Sie in TextView scrollen möchten, müssen Sie diese Eigenschaft aktivieren.

[textview setUserInteractionEnabled:YES];

Dies wird Ihnen helfen.

1

Ich habe eine ViewController, die nur eine Textansicht mit etwa 5 Seiten Text hat.

Hier ist, was ich in Swift tat 4.0:

  1. Sehr wichtig: Stellen Sie sicher, dass Auto-Layout auf den Text Ansicht verwenden. In meinem ViewController setze ich meine Einschränkungen auf die Textansicht auf 8,8,8,8 mit Beschränkung auf Ränder überprüft. Die ganze Sache tut nicht scrollen, wenn Auto-Layout nicht festgelegt ist.
  2. Dies ist der Code, den ich verwendet:

Swift 4,0

textForPrivacyPolicy.showsVerticalScrollIndicator = true 
textForPrivacyPolicy.isEditable = false 
textForPrivacyPolicy.isScrollEnabled = true 
textForPrivacyPolicy.scrollRangeToVisible(NSMakeRange(0, 0)) 
textForPrivacyPolicy.setContentOffset(CGPoint(x: 0, y: 0), animated: false)