gpt4 book ai didi

iOS:在 UIView 上以 LineWidth 1px 绘制文本

转载 作者:行者123 更新时间:2023-12-02 03:35:10 38 4
gpt4 key购买 nike

我有一个场景,我必须在 UIView 上绘制文本。我的代码是

- (void)drawRect:(CGRect)iRect {
[super drawRect:iRect];
CGContextRef aContext = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(aContext, [[UIColor greenColor] CGColor]);
[@"s" drawInRect:CGRectMake(0, 0, iRect.size.width, iRect.size.height) withFont:[UIFont systemFontOfSize:500] lineBreakMode:NSLineBreakByCharWrapping alignment:NSTextAlignmentCenter];
}

通过这段代码我可以实现:

enter image description here

但是,由于我使用的 FontSize 为 500,因此文本 lineWidth 很大。我想将 lineWidth 减小到 1px。

请建议如何实现这一目标。

  • 除了传统的drawInRect之外,还有其他方法吗?
  • CoreText 能帮我找到解决方案吗

谢谢。

编辑

使用 UIBezierPath 作为字形,我能够获取角色的路径。但所达到的路径是通过角色的边界。因此,我得到的文本为:

enter image description here

这可以做成一行吗?

最佳答案

尽管字母 S 看起来像是被绘制为一定宽度的线,但事实并非如此。如果您仔细观察,您会发现线宽有所不同。它实际上是由其轮廓定义的复杂图形结构。如果您使用带衬线的字体,这一点就更明显了。因此,不存在文本行宽度这样的东西。

最好的解决方案可能是使用不同的字体,看起来就像是用窄笔绘制的。我不确定 iOS 上是否预装了这样的字体。

关于iOS:在 UIView 上以 LineWidth 1px 绘制文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13760265/

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