iOS 7中的CGContextSetStrokeColorWithColor失败

时间:2014-02-17 11:27:00

标签: ios7 core-graphics cgcontext

我使用此功能绘制自定义UILabel。它适用于iOS 6及更早版本,但在iOS 7中失败。如果我用CGContextSetFillColorWithColor替换CGContextSetStrokeColorWithColor,它适用于iOS7但不适用于6及更早版本。

void ShadowedStrokedText(CGContextRef ctx,NSString *text,CGPoint textStartPont,UIColor *textColor,UIFont *font,CGFloat lineWidth,UIColor * shadowColor,CGFloat shadowThickness){

CGContextSaveGState(ctx);

CGContextSetInterpolationQuality(ctx,kCGInterpolationHigh);
CGContextSetLineJoin(ctx, kCGLineJoinRound);

CGContextSetLineWidth(ctx, lineWidth);

CGContextSetStrokeColorWithColor(ctx, textColor.CGColor);
//---this works with iOS7 
//CGContextSetFillColorWithColor(ctx, textColor.CGColor);
CGContextSetTextDrawingMode(ctx, kCGTextStroke);
CGContextSetShadowWithColor(ctx,CGSizeMake(0,0),shadowThickness,[shadowColor CGColor]);

[text drawAtPoint:textStartPont withFont:font];

CGContextRestoreGState(ctx);}

为什么?

1 个答案:

答案 0 :(得分:0)

您使用的

drawAtPoint:withFont:deprecated in iOS7

  

drawAtPoint:withFont:

     

使用指定的字体在当前图形上下文中的指定点处在单行中绘制字符串。 (在iOS 7.0中不推荐使用。使用drawAtPoint:withAttributes:相反。)