Ich arbeite an einer App, die eine UITextView verwendet.
Der UITextView sollte vertikal oder horizontal wachsen oder schrumpfen, damit er in den Text passt. Um dies zu tun, überschreibe ich sizeToFit in einer Unterklasse und setze die Grenzen wie folgt:
%Vor%Das Problem ist, dass diese Größe nicht die korrekte Größe der Zeichenfolge widerspiegelt, da UITextView den Text schneidet. Ich setze die Kanteneinsätze auf Null, also sollte das kein Problem sein, oder?
An dieser Stelle denke ich, dass es ein Fehler mit der size-Eigenschaft von NSAttributedString ist, aber dasselbe passiert, wenn ich boundingRectWithSize verwende: options: context:
%Vor%Vielleicht funktioniert der Code, der Layout-Berechnungen für NSAttributedString ausführt, nicht gut mit den Layoutberechnungen von UITextView.
Hier ist ein Beispielprojekt, das das Problem demonstriert .
Irgendwelche Ideen sind willkommen!
BEARBEITEN: Ich sollte auch darauf hinweisen, dass das Folgende auch nicht funktioniert:
%Vor% Ich denke, Sie haben recht - ich konnte -[NSAttributedString boundingRectWithSize:options:context: ]
nicht dazu bringen, einen Wert zurückzugeben, der für alle Schriftgrößen korrekt funktioniert ...
Ich habe jedoch ein UILabel erhalten, um attributierte Strings korrekt zu skalieren und zu zeichnen:
UILabel
-setAttributedText:
auf dem Label label.numberOfLines = 0
(mehrzeilig) -layoutSubviews
des Superview-Aufrufs Ihres Labels - [label sizeThatFits:], um die richtige Größe für das Label zu erhalten .... Arbeitete für mich ...
EDIT: Hier ist meine ViewController.m Datei:
%Vor%Tags und Links objective-c ios uitextview nsattributedstring uikit