gpt4 book ai didi

ios - 以核心文本为中心绘制 NSAttributedString

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:13:00 28 4
gpt4 key购买 nike

我有一个在矩形中绘制 NSAttributedString 的方法:

-(void)drawInRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)self);

// left column form
CGMutablePathRef leftColumnPath = CGPathCreateMutable();
CGPathAddRect(leftColumnPath, NULL, CGRectMake(rect.origin.x, -rect.origin.y, rect.size.width, rect.size.height));

// left column frame
CGFloat translateAmount = rect.size.height;
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CGContextTranslateCTM(context, 0, translateAmount);
CGContextScaleCTM(context, 1.0, -1.0);
CTFrameRef leftFrame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), leftColumnPath, NULL);

CTFrameDraw(leftFrame, context);

CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CGContextTranslateCTM(context, 0, translateAmount);
CGContextScaleCTM(context, 1.0, -1.0);

CFRelease(leftFrame);
CFRelease(framesetter);
CGPathRelease(leftColumnPath);
}

几个月前,我在教程的帮助下将其组合在一起。事实证明,默认情况下,这会绘制左对齐的字符串。我不太擅长使用 Core Text,有谁知道我如何使用文本对齐中心来绘制它?

(请不要推荐外部标签绘图类,我需要用 Core Text 来做)。

最佳答案

CTParagraphStyleCTTextAlignment 设置为 kCTCenterTextAlignment 以获取您希望居中的属性字符串的范围。

然后创建CTFramesetter,然后绘制。


示例:http://foobarpig.com/iphone/coretext-set-text-font-and-alignment-to-cfattributedstring.html

关于ios - 以核心文本为中心绘制 NSAttributedString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13327507/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com