如何在ios中操纵UITextView的个性?

时间:2014-06-30 08:59:09

标签: ios objective-c ios7

我想操纵UITextView的个别字符,例如向左旋转一个(90度),向右旋转一个(90度),依此类推。

任何人都有实现这一目标的想法?

1 个答案:

答案 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中的示例,关于在曲线形状上渲染文本的部分)