gpt4 book ai didi

objective-c - 是否可以覆盖 UILabel 的 drawTextInRect 方法以更改 UILabel 的文本大小?

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:52 24 4
gpt4 key购买 nike

Apple 的 drawTextInRect 文档似乎表明这是可能的:

"By the time this method is called, the current graphics context is already configured with the default environment and text color for drawing. In your overridden method, you can configure the current context further and then invoke super to do the actual drawing or you can do the drawing yourself. If you do render the text yourself, you should not invoke super."

但下面来 self 的 UILabel 子类的示例(我已经确认正在 被调用)不会导致文本大小发生变化,无论我指定什么文本大小。我是捕获了正确的上下文还是错过了更大的东西?

- (void)drawTextInRect:(CGRect)rect{

CGContextRef theContext = UIGraphicsGetCurrentContext();
CGContextSetFontSize(theContext, 32.0); // <-- doesn't change text size

[super drawTextInRect:rect];
}

注意 - 文本大小并不是我唯一需要更改的文本,但如果我可以更改文本大小,我很确定我需要进行的其余更改会很容易。

最佳答案

/* use CGContextSetLineWidth() and CGContextSetStrokeColorWithColor() 
to adjust your outline settings: directly preceding StrokeRect() */


- (void)drawTextInRect:(CGRect)rect{

[super drawTextInRect:rect]; // let super do the work

CGContextStrokeRect(UIGraphicsGetCurrentContext(),rect);
}

关于objective-c - 是否可以覆盖 UILabel 的 drawTextInRect 方法以更改 UILabel 的文本大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1108440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com