adjustsFontSizeToFitWidth nicht richtig arbeiten

Ich bin die Entwicklung einer app für iOS - > 5.0 und Verwendung von Xcode 4.6.2
Zu erklären, mein problem, ich habe eine UIScrollView enthält nur einen Haufen UILabel. Der text, den ich werde die Anzeige in diesen UILabels sind dynamisch, aber UILabel's frame ist konstant, so dass, wenn der aktuelle text nicht in das Bild passen Breite, die ich brauche, um meine Waage font-size nach unten. Also, ich habe festgestellt adjustsFontSizeToFitWidth Eigenschaft von UILabel.

Hier ist die Erklärung, die ich nahm direkt aus UILabel Klasse Referenz.

Einen booleschen Wert, der angibt, ob das font-size sollte reduziert werden, um zu passen die Titel-Zeichenfolge in der Bezeichnung des Begrenzungsrechtecks.

Yeap, ich dachte, das ist was ich genau suchen, da der text, den ich werde die Anzeige in UILabel ist immer eine Zeile. Also ich bin mir dessen bewusst, diese Eigenschaft sollte verwendet werden, mit numberOfLines - Eigenschaft 1.

Hier ist mein code, damit dies geschieht.

for (NSString *currentImage in self.imagesNames)
{
    UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(imageNumber*resultTypeImageWidth, 10, 75, 35)];
    [lbl setFont:[UIFont fontWithName:@"GothamRounded-Bold" size:25]];
    [lbl setNumberOfLines:1];
    [lbl setText:currentImage];
    [lbl setBackgroundColor:[UIColor clearColor]];
    [lbl setTextColor:[UIColor colorWithHue:0.07 saturation:1 brightness:0.49 alpha:1.0]];
    [lbl adjustsFontSizeToFitWidth];
    [lbl setTextAlignment:NSTextAlignmentCenter];
    imageNumber++;
    [self.resultTypeScrollView addSubview:lbl];
}

imageNumber ist ein int, dass ich mit dieser UILabels an entsprechender Stelle in meine UIScrollView die Namen resultTypeScrollView. resultTypeImageWidth ist eine Konstante, die ich definiert haben und 100 zu geben, etwas Platz zwischen UILabels.

So, mein problem ist wenn der text passt nicht in den label-Rahmen, wird es abgeschnitten. Ich erwartete, dass, wenn der text nicht passt der Rahmen, Schriftgröße verkleinere, um es zu passen. Zumindest ist das, was ich verstehe, aus UILabel Klasse Referenz. Offenbar bin ich etwas fehlt, aber was ?

So weit,

  1. Wie ich bin mit benutzerdefinierten schriftart, vermute ich, dass mit benutzerdefinierten schriftart wäre ein problem. Also wechselte ich auf eine der system-schriftart, hat es keine Wirkung.
  2. Ich versuchte, zu NSLineBreakModezu NSLineBreakByClipping um zu verhindern, dass text immer abgeschnitten. Nach, dass der text nicht abgeschnitten, aber einige Zeichen fehlen, wurde abgeschnitten, bevor.
  3. Ich habe auch minimumScaleFactor andere Werte einstellen, um zu sehen, ob es irgendeinen Effekt, aber keine Auswirkungen auf alle.
  • dies sollte nur arbeiten, ohne zu ändern viele Standardeinstellungen. eine Sache, die mir auffällt, ist der code nicht gesetzt adjustsFontSizeToFitWidth, nur es bekommt. die Einstellung würde dann so Aussehen lbl.adjustsFontSizeToFitWidth = JA;
  • das Problem war, weiß ich nicht, wie ich es verpasst, dein Kommentar als Antwort, ich werde es akzeptieren, danke 🙂
  • froh, dass es geholfen hat. danke.
InformationsquelleAutor limon | 2013-07-21
Schreibe einen Kommentar