UITextField kann den Text nicht automatisch verkleinern
Ich habe eine UITextField
auf einem table view Zelle, und wenn es der text wird zu lang, ich möchte die Schriftgröße zu verringern. Ich will sehr deutlich machen, dass ich spreche über einen UITextField
, nicht ein UILabel
oder eine UITextView
. Der Grund ich sagen dies ist weil ich gesehen habe, diese Frage pop-up mehrere Male, und die Antworten waren alle auf UILabel
statt UITextField
. Zum Beispiel, jemand fragte: "ich kann nicht mein UITextField
auf automatische Verkleinerung" und die Antwort war: "stellen Sie sicher, es ist numberOfLines
eingestellt ist 1
". Zu den besten meines Wissens, ein UITextField
nicht auch diese Eigenschaft und ist eine einzelne Zeile kontrollieren.
Habe ich versucht:
- in IB-Einstellung der schriftart auf system-14.0,
minFontSize
7 und überprüfen Sie die "anpassen" - box - im code
tableView:cellForRowAtIndexPath:
ptCell.name.font = [UIFont systemFontOfSize: 14.0];
ptCell.name.adjustsFontSizeToFitWidth = YES;
ptCell.name.minimumFontSize = 7.0;
aber weder diese gearbeitet haben. Damit meine ich, dass statt der text verkleinern schneidet den Schwanz.
Weiß jemand, was ich bin fehlt? Vermutlich sollte das funktionieren, denn ich habe gesehen, andere Fragen sich beklagt, dass es ist, dies zu tun, wenn der Benutzer nicht wollen, dass es.
InformationsquelleAutor der Frage hvanbrug | 2013-05-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem. Die UITextField gestopt verkleinern Sie den text, wenn es zu lang war, sondern es verkleinert sich und wuchs außerhalb Ihrer 'Grenzen'.
Die Lösung, die mir geholfen war, war die Breite Einschränkung auf gegeben UITextField. Nach, dass es nicht wuchs nicht mehr, stattdessen wird der text wurde kleiner als gedacht.
(Natürlich müssen Sie noch festlegen, minFontSize, und überprüfen Sie die "anpassen" - box in der storyboard.)
Ich weiß, es ist ziemlich spät, aber wenn noch jemand finden der diese Frage über google als ich hast...könnte es helfen.
InformationsquelleAutor der Antwort micromanc3r
Benutzte ich die Antwort gepostet von @Purva als Ausgangspunkt zu kommen mit dieser Methode gibt die erforderliche schriftart, Größe, beginnend bei der konfigurierten Schriftgröße, und nicht unterschritten wird, werden die konfigurierten Mindest-Schriftgröße. In der Erwägung, dass @Purva getestet für die Höhe des Textes, die ich benötigt die Breite zu passen. Diese Methode können Sie entweder eine Kategorie oder eine Unterklasse von UITextField. Ich habe es in einer Unterklasse, die erfasst auch die
UITextFieldTextDidChangeNotification
. Aus diesem notification-handler rufe ich die neue Methode und die Größe der schriftart, wenn nötig. Ich nenne es, wenn ich die Zuweisung neuer text an die textfield-Instanz, um sicherzustellen, dass es passt, indem bilden von Unterklassen- (void)setText: (NSString*)text
.In jedem Fall, wenn ich es nennen ich bin mit dem folgenden code:
Hier ist die neue Methode:
InformationsquelleAutor der Antwort hvanbrug
Ich denke, Sie möchten die
adjustsFontSizeToFitWidth
Eigenschaft für IhreUITextField
auf JA, und geben Sie einenminimumFontSize
. Funktioniert für mich, aber ich Stell dieUITextField
programmatisch - IB-Problem?InformationsquelleAutor der Antwort Matt Powlson
InformationsquelleAutor der Antwort Purva
Versuchen, diese seine Arbeit für mich (swift 3.0)
InformationsquelleAutor der Antwort vijay
Ich hatte das gleiche problem mit UITextFields erstellt in Storyboards in Xcode 5.0.2, iOS 7.0.4. Ich fand heraus, dass die .minimumFontSize Eigenschaft konnte nicht geändert werden von StoryBoard, oder viewDidLoad oder viewWillAppear, sondern dass es könnte geändert werden in viewDidAppear. Also der folgende code ist mein problem gelöst:
InformationsquelleAutor der Antwort user955853
Meiner bescheidenen Lösung für dieses problem war.... (finden Sie die richtige Größe der schriftart auf meiner eigenen, passen Sie die Größe des Rahmens) habe ich es innerhalb delegate-Methode shouldChangeCharactersInRange:replacementString:
InformationsquelleAutor der Antwort Marek Manduch
Swift 3.0 Art und Weise, um die Größe der schriftart zu passen:
InformationsquelleAutor der Antwort Jim Conroy
Getestet mit XCode8 und Swift 3.0.1
Ich verwendet viewDidLayoutSubviews, um alle Textfelder und die automatische Verkleinerung der text.
Vielleicht jemand den code brauchen.
Für mich funktioniert es perfekt.
Den Code von@ Marek Manduch auf dieser Seite und
@Kunal Kumar auf dieser Seite:
Wie man alle Felder mit Sternchen aus einen Blick in swift
InformationsquelleAutor der Antwort Skyborg
Kann gelöst werden, indem Sie Zeilenumbrüche = Clip-in IB
InformationsquelleAutor der Antwort netshark1000
Den Haken an der Sache ist, dass minimumFontSize ist ein Verhältnis und sollte zwischen 0 und 1 🙂
perfekt funktioniert 🙂
InformationsquelleAutor der Antwort sachadso