作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的博客之前已经在这里提到过作为问题的答案。我无法链接到其中一个,因为此表单声称我是垃圾邮件发送者。叹。不管怎样,现在我想写一篇关于绘制旋转文本的权威博客文章,所以它也可以用于这里的答案(呵呵)。这是我的第一次尝试:
http://www.platinumball.net/blog/2009/06/01/drawing-nsstrings-in-unusual-rotations/
效果很好,它可以完成我想要的一切,除了它使用 CGContextSelectFont(),这将文本输出限制为 MacRoman。那是德苏克。
我已经寻找这个问题的答案近一年了,包括多次搜索这个网站,但没有成功。我见过一些看起来很接近我想要的例子,但显然我太愚蠢了,无法让它们屈服于我的意愿。我包含了我编写的 NSString 类别中的 main 方法,它显示了我正在做的事情的实质。如果您需要查看其余的代码,可以从我上面给出的博客链接下载。谢谢...
-(void)drawAtPoint:(CGPoint)point withFont:(UIFont*)font
orientation:(WBOrientation)orient
{
CGContextRef ctxt = [self contextSave];
const std::string tbuf = toStdString(self, NSMacOSRomanStringEncoding);
CGAffineTransform tran = CGAffineTransformMake(1, 0, 0, -1, 0, 0);
switch (orient)
{
case WBOrientUp:
// nothing to do
break;
case WBOrientDown:
tran = CGAffineTransformRotate(tran, degreesToRadians(180.0));
break;
case WBOrientLeft:
tran = CGAffineTransformRotate(tran, degreesToRadians(90.0));
break;
case WBOrientRight:
tran = CGAffineTransformRotate(tran, degreesToRadians(-90.0));
break;
default:
assert(false);
break;
}
contextFont(ctxt, font);
CGContextSetTextDrawingMode(ctxt, kCGTextFill);
CGContextSetTextMatrix(ctxt, tran);
CGContextSetTextPosition(ctxt, point.x, point.y);
CGContextShowText(ctxt, tbuf.c_str(), tbuf.length());
[self contextRestore:ctxt];
}
最佳答案
在我自己做之后几天=)
这就是我解决这个问题的方法:
view.layer.transform = CATransform3DRotate(view.layer.transform, 3.1415, 0,0,1); // this is for 180 degrees.
关于iphone - 如何绘制旋转文本而不限于 MacRoman 字符集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2163418/
我是一名优秀的程序员,十分优秀!