iOS自定义UITextView与垂直文本

时间:2014-06-20 04:57:02

标签: ios uitextview textkit

据我所知Apple的TextKit不支持NSTypesetter(可以从上到下设置写入方向),但我的语言(传统蒙古语)应该从上到下书写。所以我想用子类来自定义UITextView,然后做了一个简单的演示(将UITextView旋转为M_PI / 2)。

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:CGRectMake(frame.origin.x, frame.origin.y, frame.size.height, frame.size.width)];
    if (self) {
        CGAffineTransform transform = CGAffineTransformRotate(self.transform, M_PI/2);
        CGFloat translate = (frame.size.height - frame.size.width) / 2;
        transform = CGAffineTransformTranslate(transform, translate, translate);
        transform = CGAffineTransformScale(transform, 1, -1);
        self.transform = transform;
    }
    return self;
}

创建一个宽度= 100&的TextView。高度= 200:

ZGTextView *textView = [[ZGTextView alloc] initWithFrame:CGRectMake(110, 20, 100, 200)];
textView.text = @"012345678901234567890123456789012345678901234567890123456789";
[self.view addSubview:textView];

但是当运行demo时,我发现文本容器只使用了TextView的上半部分,即使我使用initWithSize方法初始化TextContainer。 我想这是因为NSLayoutManager自动设置适合TextView宽度的线长(在我的测试宽度= 100,高度= 200),但在我的ZGTextView中它应该适合TextView的高度(垂直线)。

有没有办法自定义NSLayoutManager,它可以支持适合UITextView高度的绘制线?

0 个答案:

没有答案