CTFramesetterCreateFrame返回nil

时间:2011-05-19 19:02:48

标签: ios core-text

我正在尝试创建一个充当圆形TextView的UIView。我可以在iOS 4.2+上做到这一点,但在4.0& 4.1,下面对CTFramesetterCreateFrame的调用返回nil。有什么想法吗?

- (void)drawRect:(CGRect)rect{
[super drawRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CGContextTranslateCTM(context, 0, self.bounds.size.height);
CGContextScaleCTM(context, 1.0, -1.0);

CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, NULL, rect);

CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attrString);
CTFrameRef theFrame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, [attrString length]), path, NULL);
CTFrameDraw(theFrame, context);
CGPathRelease(path);
CFRelease(theFrame);
CFRelease(framesetter);
}

1 个答案:

答案 0 :(得分:2)

看起来这是一个iOS问题 - 在iOS上,你只能使用矩形作为路径。你正在添加一个椭圆。