Я работаю над новым приложением. Я отрисовываю различные документы из NSAttributedString, используя Core Text. У меня проблемы со странными глюками при рендеринге текста. Это не происходит с каждым документом. Кажется, что нет рифмы или причины, когда это появляется или нет.
Вот обрезанный снимок экрана, чтобы продемонстрировать проблему.
Вот строка из того же скриншота, которая отображается правильно.
Снимки экрана с того же снимка экрана и того же документа.
Когда возникает проблема, обычно есть только 2-3 последовательных строки текста, которые отображаются неправильно. Остальная часть документа в порядке.
Вот код, который я использую для визуализации текста в drawRect:
CGContextRef context = UIGraphicsGetCurrentContext();
float viewHeight = self.bounds.size.height;
CGContextTranslateCTM(context, 0, viewHeight);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetTextMatrix(context, CGAffineTransformMakeScale(1.0, 1.0));
CGMutablePathRef path = CGPathCreateMutable();
CGRect bounds = CGRectMake(PADDING_LEFT, -PADDING_TOP, self.bounds.size.width-20.0, self.bounds.size.height);
CGPathAddRect(path, NULL, bounds);
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFMutableAttributedStringRef)attrString);
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), path, NULL);
CFRelease(framesetter);
CFRelease(path);
CTFrameDraw(frame, context);
Любая помощь приветствуется!
РЕДАКТИРОВАТЬ: Эта проблема, по-видимому, не существует на iPhone 4, только на 3GS, который я имею для тестирования.
Ошибка всегда находится в середине документа.