苹果的drawTextInRect文档似乎表明这是可能的。可以重写UILabel的drawTextInRect方法来更改UILabel文本的大小吗?
“通过这种方法被调用的时候,当前图形上下文已与默认环境和文本颜色绘制配置在你重写的方法,你可以进一步配置当前的上下文,然后调用super来做实际的绘图,或者你可以自己做绘图,如果你自己渲染文本,你不应该调用super。“
但是从我的UILabel子类下面的例子(我已经证实是获取调用)不会导致文本大小,无论我指定哪些文本大小而改变。我是否抓住了正确的环境,或者错过了更大的东西?
- (void)drawTextInRect:(CGRect)rect{
CGContextRef theContext = UIGraphicsGetCurrentContext();
CGContextSetFontSize(theContext, 32.0); // <-- doesn't change text size
[super drawTextInRect:rect];
}
注 - 文本大小不是我需要改变有关文本的唯一的事情,但如果我能得到的文本大小来改变我敢肯定,我需要做其余的改动会很容易。
我只是试图让drawTextInRect做任何事*。我真正的目标是让UILabel文本具有一个像素的黑色轮廓边框: http://stackoverflow.com/questions/1103148/how-do-i-make-uilabel-display-outlined-text – 2009-07-10 09:47:52