在视图中间绘制更改文本

时间:2012-03-24 16:27:22

标签: ios quartz-2d drawrect

我需要在视图中间绘制文本,文本可以是1个字母或几个单词。 我正在- (void)drawRect:(CGRect)rect方法中绘制文本。

我想要的是文本将水平和垂直居中(我知道如何做到这一点)。 但是我想根据文字长度更新字体大小,所以:

像“S”这样的字符串将以90磅的字体大小绘制,但“hello world”将以30磅的字体大小绘制。

任何想法?

1 个答案:

答案 0 :(得分:1)

UILabel可用于垂直和水平居中。使用adjustsFontSizeToFitWidth它还可以缩小文本以适应标签的宽度。

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

如果您需要更多控制尺寸,我认为您必须自己定位。您可以使用NSString上的sizeWithFont:sizeWithFont:forWidth:lineBreakMode:消息来获取具有特定字体的字符串大小 - 然后确定要使用的大小和绘制位置。请参阅the documentation