Я пытаюсь нарисовать текст, используя CoreText. У меня есть следующий код:
CGContextRef uiContext = UIGraphicsGetCurrentContext();
NSMutableDictionary<NSAttributedStringKey,id> *attributes = [NSMutableDictionary<NSAttributedStringKey,id> new];
[attributes setObject:UIColor.redColor forKey:NSForegroundColorAttributeName];
[attributes setObject:[UIFont systemFontOfSize:40] forKey:NSFontAttributeName];
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"Str" attributes:attributes];
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, nil, CGRectMake(0, 50, attrString.size.width, attrString.size.height));
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attrString);
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, attrString.length), path, nil);
CTFrameDraw(frame, uiContext);
С помощью приведенного выше кода текст размещается правильно, но зеркально отражается в направлении y
Итак, я попытался применить преобразование и масштабирование, что помогло с текстом, но теперь он расположен в левом нижнем углу, что не является желаемым поведением.
CGContextSetTextMatrix(uiContext, CGAffineTransformIdentity);
CGContextTranslateCTM(uiContext, 0.0, self.bounds.size.height);
CGContextScaleCTM(uiContext, 1.0, -1.0);
Есть какие-нибудь идеи, что мне здесь не хватает? Спасибо.