2013-09-28 9 views
29

ich alsWie Inhalt Einsatz für UITextView in ios setzen

[atextView setContentInset:UIEdgeInsetsMake(0, 10, 0, 0)];

Dieser Code funktioniert in iOS 6.1 und unten einen UITextView und stellen Inhalte Einsatz habe, aber es passiert nichts in iOS 7.0.

+1

Gibt es eine Möglichkeit, dies zu tun ** IN STORYBOARD **?! – Fattie

+0

hast du eine aktualisierte Antwort versucht? –

+0

Ja, es gibt, überprüfen Sie meine Lösung unter Joe Blow –

Antwort

115

Antwort bekam:

[atextView setTextContainerInset:UIEdgeInsetsMake(7, 7, 0, 0)]; 

mein Problem behoben.

Und in Swift ...

@IBOutlet var tv:UITextView! 
override func awakeFromNib() 
    { 
    super.awakeFromNib() 
    tv.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0); 
    } 

UPDATE: eine weitere Option, das zu tun.

UIView *spacerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)]; 
[msgtext setLeftViewMode:UITextFieldViewModeAlways]; 
[msgtext setLeftView:spacerView]; 
+0

hey @ murugha23, ich brauche Sie helfen, wie Sie Textansicht behoben SetContentInset Problem in IOS7 – Anand

+4

Ersetzen Sie 'setTextContainerInset' statt' setContentInset'. Wenn Sie frühere Versionen von ios zur Verfügung stellen möchten, dann überprüfen Sie eine Condition reg., Aktuelle Gerätesystem Version –

+1

ja Schatz ich habe das getan, aber es hat nicht funktioniert für mich – Anand

1

Eine alternative und vielleicht ein wenig bequemer Weg, es zu tun, durch die UITextField Subklassen und eine @IBInspectable Inset Eigenschaft hinzufügen.

import UIKit 

class UITextfieldWithInset: UITextField { 

    @IBInspectable 
    var textfieldInset: CGPoint = CGPointMake(0, 0) 

    override func textRectForBounds(bounds: CGRect) -> CGRect { 
     return CGRectInset(bounds, textfieldInset.x, textfieldInset.y) 
    } 

    override func editingRectForBounds(bounds: CGRect) -> CGRect { 
     return CGRectInset(bounds, textfieldInset.x, textfieldInset.y) 
    } 

    override func placeholderRectForBounds(bounds: CGRect) -> CGRect { 
     return CGRectInset(bounds, textfieldInset.x, textfieldInset.y) 
    } 

} 
+0

Dies ist eine nette Antwort für 'UITextField', aber die Frage ist' UITextView' – dulgan

Verwandte Themen