ich eine Unterklasse Textfeld Ansicht in meinem View-Controller erstellt haben, mit der Schriftgröße zu , die AdjustFontSizeToWidth aktiviert und die Mindestschriftgröße auf 10. Mein Textfeld enthält einen Platzhaltertext, der zu groß für die Ansicht ist. Die Schriftgröße an Breite anpassen wird aktiviert und das System verkleinert die Schriftgröße auf . Ich weiß nicht genau warum , weil der Platzhalter immer noch nicht passt (siehe Screenshot) Irgendeine Idee, warum ist das passiert? Habe ich etwas verpasst? I subclassed UITextField und überschreiben die folgenden Methoden (nicht sicher, es ist relevant, aber diese scheinen Methoden zu sein, die diese Fehler verursachen können):UITextField Unterklasse Messing adjustFontSizeToWidth
- (CGRect)leftViewRectForBounds:(CGRect)bounds {
CGRect leftViewRect = [super leftViewRectForBounds:bounds];
if ([self shouldShowLeftView] == YES) {
CGFloat newHeight = self.frame.size.height * 0.5f;
if (self.leftImage) {
leftViewRect.size.width = newHeight;
}
leftViewRect.origin.x = kMargins;
leftViewRect.origin.y = (self.frame.size.height - leftViewRect.size.height)/2.0f;
}
return leftViewRect;
}
- (CGRect)textRectForBounds:(CGRect)bounds {
CGRect rectForBounds = [super textRectForBounds:bounds];
if ([self shouldShowLeftView] == YES) {
rectForBounds.origin.x += kMargins;
rectForBounds.size.width -= 2.0 * kMargins;
} else {
rectForBounds.origin.x += kMargins/2.0;
rectForBounds.size.width -= 2.0 * (kMargins/2.0);
}
return rectForBounds;
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
CGRect rectForBounds = [super editingRectForBounds:bounds];
if ([self shouldShowLeftView] == YES) {
rectForBounds.origin.x += kMargins;
rectForBounds.size.width -= 2.0 * kMargins;
} else {
rectForBounds.origin.x += kMargins/2.0;
rectForBounds.size.width -= 2.0 * (kMargins/2.0);
}
return rectForBounds;
}
EDIT: Update, habe ich versucht, this solution zu verwenden und den Code ein wenig angepasst, damit er auch für den Platzhalter funktioniert. Die Schriftgrößenanpassung ist in Ordnung, aber die Benutzeroberfläche ist durcheinander, wenn der Text verkleinert wird, der Text nach links, hinter der linken Bildansicht. Auf dem Screenshot sehen wir, dass der rechte Rand zu groß und der Text zu viel links ist.
Es gibt eine Mindestsystemgröße für das System. UITextField verkleinert die Schriftgröße nicht so weit, wie Sie es sich erhoffen. – matt
Meine minimale Schriftgröße ist 10, und der Platzhalter hat eine Schriftart mit 14pt statt der 15, die ich standardmäßig gab, es ist wahrscheinlich falsch berechnet. Deshalb frage ich. – Loadex