2015-06-28 12 views
7

Ich verwende UILabel und UITextView und sie rendern Text anders. Es scheint, dass UITextView Offsets Text 4.UITextView verschiebt Text anders als UILabel

Im Folgenden ist ein Beispiel, wo an der Spitze ist UILabel und unten ist UITextView. Beide verwenden dieselbe Schriftart. Zwei Beispiele sind hier, eine mit der benutzerdefinierten Schriftart OpenSans und eine mit der Schriftart HelveticaNeue Schriftart.

label.text = text; 
    CGFloat width = 320 - 2 * 16; // both label and textView end up with 288 width 
    CGSize size = [label sizeThatFits:CGSizeMake(width, CGFLOAT_MAX)]; 
    CGRect frame = CGRectMake(16, 0, width, size.height); 
    label.frame = frame; 

UITextView:

UILabel wird von sizeThatFits Verwendung nach dem Einstellen des Textes angepasst. textContainerInset ist auf (0,0,0,0) eingestellt.

Irgendwelche Hilfe? Hier sind die Screenshots:

1,1 HelveticaNeue: Textview Offset -4 (Etikett nach oben)
HelveticaNeue: offset -4

1,2 HelveticaNeue: ausgerichtet (label oben)
HelveticaNeue - aligned

2.1 OpenSans: textView offs et -4 (Etikett nach oben)
OpenSans - offset -4

2,2 OpenSans: übereingestimmt (Etikett nach oben)
OpenSans - aligned

Antwort

7

Dies funktioniert für mich und beseitigt die innere Polsterung:

textView.textContainer.lineFragmentPadding = 0; 
textView.textContainerInset = UIEdgeInsetsZero; 
+2

Danke, lineFragmentPadding war der Schlüssel. – vale4674