2010-12-02 33 views
21

Ich entwickle gerade eine einfache Textbearbeitungs-App für iPad. Ich möchte die linken/rechten Ränder wie das beigefügte Bild einstellen. Das Hinzufügen von UITextView zu einer anderen UIView mit größerer Breite funktioniert nicht, da ein Scrollindikator nicht richtig lokalisiert wird.Wie setze ich einen Rand in UITextView?

Anstatt UIView habe ich UITextView in UIScrollView hinzugefügt, und es funktioniert fast gut. Aber sie zeigen manchmal seltsames Verhalten, und UITextViewDelegate funktioniert nicht mit meinem UIViewController.

Gibt es eine Möglichkeit, die linken/rechten Ränder nur mit UITextView einzustellen? Danke.

alt text

Antwort

6

UITextView ist eine Unterklasse von UIScrollView. Ich habe versucht, es nicht, aber Sie könnten versuchen, so etwas wie:

myTextView.contentInset = UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 10.0f); 

UIEdgeInsetsMake() ist wie folgt:

UIEdgeInsets UIEdgeInsetsMake (
    CGFloat top, 
    CGFloat left, 
    CGFloat bottom, 
    CGFloat right 
); 

So sollten Sie in der Lage sein, Ihre Textview Inhalt Einsatz.

Hoffe das hilft, lassen Sie mich wissen, wenn es funktioniert !! :)

+1

es als –

+7

erwartet funktioniert Das funktioniert nicht ganz für mich. Sicher, die Ränder werden hinzugefügt, aber sie werden außerhalb der Grenzen der UITextView hinzugefügt. Das Ergebnis ist eine Textanzeige, die bündig mit der Kante beginnt, aber Sie können sie bis zum Rand herausscrollen. Was vermisse ich? –

4

Ich wollte das gleiche tun, aber textview.contentInset hat nicht funktioniert.

Ich legte UITextView mit einer schmalen Breite auf UIView, dann verschieben Sie den Scrollview Indikator von Textview auf die rechte Seite, so bekam ich, was ich wirklich wollte.

textView.clipsToBounds = NO; textView.scrollIndicatorInsets = UIEdgeInsetsMake (0.0f, 0.0f, 0.0f, -20.0f);

Diese Antwort könnte helfen. Is there a way to put UITextView's scroll indicator to outside UITextView?

1

Sie können den rechten Einfügewert des UITextView-Scrollers auf einen negativen Wert setzen und die Clip-Subview-Option deaktivieren, um Ihre Anforderung zu erfüllen. Kein anderer Scrollview wird benötigt. Select textview on storyboard first

Im Code würde es textContainerInset

Nach dem Vorbild von George Green sein

textView.clipsToBounds = NO; 
textView.scrollIndicatorInsets = UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, -50.0f); 
8

Sie die Eigenschaft verwenden können:

myTextView.textContainerInset = UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 10.0f); 
+1

Dies funktioniert nur für Apps mit einem Targeting> = iOS 7.0 – Hemang

+0

Ja, nur> = iOS 7.0 – NES8

Verwandte Themen