CTFRAME在ios中从下到上绘制绘图线

CTFRAME在ios中从下到上绘制绘图线,ios,cocoa,Ios,Cocoa,我有一些行是用CTFramesetterCreateFrame格式化的,这些字是以正确的方式向上打印的,但行顺序是相反的,即第一行在底部,第二行是从底部开始的第二行,依此类推。我可以改变变换,让单词从后到前颠倒等等,但我不能得到正确的行顺序 我到处都检查了变换矩阵,它总是一样的- CGAffineTransform a = CGContextGetTextMatrix (context); 给我 a CGAffineTransform {...} a CGFloat 1 b C

我有一些行是用CTFramesetterCreateFrame格式化的,这些字是以正确的方式向上打印的,但行顺序是相反的,即第一行在底部,第二行是从底部开始的第二行,依此类推。我可以改变变换,让单词从后到前颠倒等等,但我不能得到正确的行顺序

我到处都检查了变换矩阵,它总是一样的-

CGAffineTransform a = CGContextGetTextMatrix (context);
给我

a   CGAffineTransform   {...}
a   CGFloat 1
b   CGFloat 0
c   CGFloat 0
d   CGFloat -1
tx  CGFloat 0
ty  CGFloat 300
这可能是一个noob错误,但我找不到问题,我对coretext相当陌生,因此任何建议都将不胜感激


OSX 10.7.4在IOS模拟器IOS5.1 XCode 4.4的UIView中运行

这似乎解决了问题-请看这里 -始终在发布问题后找到答案

简言之,你必须将坐标翻转回osx上的坐标,左下角为0,0,然后它向右上画,你会认为这样会更好一些

CGContextSetTextMatrix (context, CGAffineTransformIdentity);
CGContextTranslateCTM(context, 0.0f, height_of_frame);
CGContextScaleCTM(context, 1.0f, -1.0f);

CTFrameDraw(FFrame, context);