0

我有这段代码,可以在一个(到目前为止)简单的按钮内绘制一些文本:

UIImage *buttonImage(CGRect bounds, UIColor *fillColor, NSString *title) {

    UIGraphicsBeginImageContextWithOptions(bounds.size, NO, 0);

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, fillColor.CGColor);
    CGContextFillRect(context, bounds);

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);

    [title drawInRect:bounds withFont:PanelButtonFont];

    UIGraphicsEndImageContext();

    return image;
}

有问题的部分是drawInRect. 它根本没有画出我的文字。字体是正确的,我已经用正常的字体代码测试了这个,所以不是那样的。我想也许它没有意识到我想让它把它画到它产生的图像上?

4

1 回答 1

2

只需更改顺序并在绘制文本后获取图像:

UIImage *buttonImage(CGRect bounds, UIColor *fillColor, NSString *title) {

UIGraphicsBeginImageContextWithOptions(bounds.size, NO, 0);

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, fillColor.CGColor);
CGContextFillRect(context, bounds);

CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);

[title drawInRect:bounds withFont:PanelButtonFont];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return image;

}

于 2013-05-03T10:02:27.073 回答