如何使用 SwiftUI 沿圆形路径绘制文本
Posted
技术标签:
【中文标题】如何使用 SwiftUI 沿圆形路径绘制文本【英文标题】:How to draw text along circular path using SwiftUI 【发布时间】:2020-02-13 05:32:53 【问题描述】:我需要一些关于如何使用 SwiftUI 在循环路径中生成单行文本的帮助。我正在尝试复制这些Image 中的弯曲文本。这在 SwiftUI 中可行吗?谢谢。
【问题讨论】:
这能回答你的问题吗? Draw text along circular path in Swift for ios 没有简单的内置方法。 Tobias Due Munk 谈到在this talk 中从大约 9 分 20 秒开始沿着一个圆圈放置文本。他的代码may be available soon。 Rob Napier 的 CurvyText 项目也可能会有所帮助。 【参考方案1】:找到了我的问题的解决方案。感谢 Tobias Due Munk 使用 SwiftUI 发布了他的 CurvedText 原型。他的解决方案可以在这里找到https://git.kabellmunk.dk/prototyping-custom-ui-in-swiftui-talk/custom-ui-prototype-in-swiftui。
【讨论】:
git.kabellmunk.dk/prototyping-custom-ui-in-swiftui-talk/… 我相信 Tobias 将代码移到这里:github.com/duemunk/CrookedText【参考方案2】:不,到目前为止,Swift UI 还没有提供任何方法来做到这一点。所以正如@fulvio 指出的那样,你必须这样做Swift UIKit 方式。
您可以稍后使用 UIViewRepresentable 将其集成到您的 SwiftUI 项目中 Refer Swift UI interfacing with UIKit Apple Inc.
【讨论】:
我尝试将其作为 UIViewRepresentable 进行,但 SwiftUI 似乎不支持 UIGraphicsGetImageFromCurrentImageContext()。 那我猜你不能,但肯定没有任何 Swift ui 方式。【参考方案3】:计算每个字符的位置,见How to get position of each character in SwiftUI Text及相关解答和讨论,了解局限性
在第 1 步(使用沿路径作为参数)
定位和旋转每个字符就像这里Positioning View using anchor point
我知道 用链接回答,正如 "Ru Chem Chong" 已经提到的,不是最好的,但请回答你的问题这是一个非常复杂的任务,解释需要的不仅仅是这里的可用空间。
【讨论】:
以上是关于如何使用 SwiftUI 沿圆形路径绘制文本的主要内容,如果未能解决你的问题,请参考以下文章