0

我有一些行已用 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

这可能是一个菜鸟错误,但我找不到问题,我对 coretext 还很陌生,所以任何建议都将不胜感激。

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

4

1 回答 1

1

这似乎解决了它 - 看看这里在 ios 上正面朝上绘制文本 - 发布问题后总是找到答案

简而言之,您必须将坐标翻转回它们在 osx 上的状态,左下角为 0,0,然后它会以正确的方式向上绘制,您会认为它可能会更好一些...

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

CTFrameDraw(FFrame, context);
于 2012-08-05T04:13:30.357 回答