2012-03-24 13 views
0

Ich muss Text in der Mitte einer Ansicht zeichnen, der Text kann 1 Buchstaben oder wenige Wörter sein. Ich zeichne den Text in der - (void)drawRect:(CGRect)rect Methode.Zeichnen Sie ändernden Text in der Mitte einer Ansicht

Was ich will ist, dass der Text horizontal und vertikal zentriert wird (ich weiß, wie das geht). ABER Ich möchte die Schriftgröße Update entsprechend der Textlänge so:

ein String wie "S" wird in einer 90 Punkte Schriftgröße gezeichnet werden, aber "Hallo Welt" wird in 30 Punkten Schriftgröße gezeichnet werden.

Irgendwelche Ideen?

Antwort

1

UILabel kann vertikal und horizontal zentriert werden. Mit adjustsFontSizeToFitWidth kann der Text auch so verkleinert werden, dass er in die Etikettenbreite passt.

label.adjustsFontSizeToFitWidth = YES; 
label.minimumFontSize = 10.0; // or whatever... 

Wenn Sie mehr Kontrolle über die Größe benötigen, denke ich, dass Sie die Positionierung selbst vornehmen müssen. Sie können die Nachrichten sizeWithFont: und sizeWithFont:forWidth:lineBreakMode: auf einem NSString verwenden, um die Größe Ihrer Zeichenfolge mit einer bestimmten Schriftart zu ermitteln und dann herauszufinden, welche Größe verwendet werden soll und wo sie gezeichnet werden soll. Siehe the documentation.