gpt4 book ai didi

iphone - 从文本中获取CGPath

转载 作者:行者123 更新时间:2023-12-03 20:28:24 25 4
gpt4 key购买 nike

Hej 研究员,

我目前正在尝试将一个字母和/或多个字母转换为 CGPathRef,以便手动将它们绘制到自定义 UIView 中。我尝试了 CoreText 和 Framesetters 的方法,包括这个小片段,但它似乎不起作用......

NSAttributedString *stringToDraw = [[NSAttributedString alloc] initWithString:content
attributes:nil];

// now for the actual drawing
CGContextRef context = UIGraphicsGetCurrentContext();

// flip the coordinate system

// draw
CTFramesetterRef frameSetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)stringToDraw);
CTFrameRef frame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0, 0), NULL, NULL);

return CTFrameGetPath(frame);

最佳答案

CTFrameGetPath 返回包围 CTFrame 的路径,而不是绘制框架生成的路径。我假设您正在执行上述操作,因为您正在缓存路径以提高以后的绘图性能? (因为 CTFrame 可以轻松地将自身绘制到自定义 View 中)。

如果您确实想要获取CGPath,则需要一直深入到CGGlyph,然后使用CTFontCreatePathForGlyph。如果您只是想快速重绘文本,我可能会使用 CTFrameDraw 将其绘制到 CGLayer(而不是 CALayer)中,以供以后重用。

如果您仍然确实想要字形的 CGPath,请查看 Low-level text rendering 。您需要的代码就在那里。

关于iphone - 从文本中获取CGPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7447256/

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