CTFrameDraw在ios中从下到上绘制线条

时间:2012-08-05 02:40:51

标签: ios cocoa

我有一些已经使用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在UIView中运行IOS模拟器IOS5.1 XCode 4.4

1 个答案:

答案 0 :(得分:1)

这似乎可以解决它 - 看看draw text right side up on ios - 在发布问题后总能找到答案

简而言之,你必须将坐标转回到左下角0,0的osx,然后它向右走,你认为它可能会好一点......

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

CTFrameDraw(FFrame, context);