我想操纵UITextView的个别字符,例如向左旋转一个(90度),向右旋转一个(90度),依此类推。
任何人都有实现这一目标的想法?
答案 0 :(得分:2)
修改UITextView
中个别字符最简单的方法是使用NSMutableAttributedString
扩展它,如下所示:
@implementation NSMutableAttributedString (Rotation)
- (void)setRotatedFontWithName:(NSString*)fontName
size:(CGFloat)size
range:(NSRange)range
{
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI_2);
CTFontRef aFont = CTFontCreateWithName((CFStringRef)fontName, size, &transform);
if (!aFont)
return;
[self removeAttribute:(NSString*)kCTFontAttributeName range:range];
[self addAttribute:(NSString*)kCTFontAttributeName value:(id)aFont range:range];
CFRelease(aFont);
}
然后使用attributedText
的{{1}}属性设置旋转的字体。
您还可以尝试创建一个自定义类,该类覆盖UITextField
的默认UITextField
并使用Core Text方法绘制正常和旋转的文本(请参阅here中的示例,关于在曲线形状上渲染文本的部分)