[NSString drawAtPoint:指定withAttributes:dictOfAttributes]; - 绘制文字颠倒

时间:2014-02-12 11:16:50

标签: ios objective-c cgcontext

我一直坚持如何用iOS7的新功能替换下面的代码。

折旧函数为CGContextSelectFontCGContextShowTextAtPoint

CGContextTranslateCTM(pdfContext, 0, mainView.frame.size.height);
CGContextScaleCTM(pdfContext, 1, -1);

CGRect newFrame = frame;
newFrame.origin.y = (mainView.frame.size.height - frame.origin.y);
frame = newFrame;

UIFont *font = [str attribute:NSFontAttributeName atIndex:0 effectiveRange:NULL];
const char *fontName = [font.fontName UTF8String];
CGContextSelectFont(pdfContext, fontName, font.pointSize, kCGEncodingMacRoman); // DEPRECIATED


CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextSetFillColorWithColor(pdfContext, label.textColor.CGColor);
CGContextSetStrokeColorWithColor(pdfContext, label.textColor.CGColor);

CGAffineTransform transform = CGAffineTransformMakeRotation(-(M_PI_4 * 0.7));
CGContextSetTextMatrix(pdfContext, transform);
CGContextShowTextAtPoint(context, frame.origin.x, frame.origin.y, [label.text UTF8String], [label.text length]); // DEPRECIATED

编辑://

我知道我需要使用[NSString drawAtPoint:aPoint withAttributes:dictOfAttributes];

                CGContextSetTextDrawingMode(pdfContext, kCGTextFill);
                [[UIColor blackColor] setFill];
                [label.text drawAtPoint:CGPointMake(frame.origin.x, frame.origin.y)
                         withAttributes:@{NSFontAttributeName:font
                                          }];

然而,使用上面的解决方案将文本倒置而没有角度。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

对于CGContextSelectFont,您应该结帐this answer,对于CGContextShowTextAtPoint,您需要查看this

理想情况下,您应该查看弃用说明的文档。