gpt4 book ai didi

Swift:给出一个长字符串的文本倾斜物理

转载 作者:行者123 更新时间:2023-11-30 13:17:04 26 4
gpt4 key购买 nike

我正在构建一个实验性阅读应用程序,其中文本段落在屏幕上显示为单行文本。用户将前后倾斜以向后或向前移动文本条。到目前为止我尝试过的是:

  1. 将 UILabel 放置在 UIScrollView 内,并根据当前倾斜手动计算 ScrollView 的新偏移量。在此实现中,文本以一种不舒服的、不稳定的运动方式滚动,很可能是因为当前的加速度方程只是一个线性函数。另外,我不想重新发明轮子,因为 Sprite Kit 已经完善了倾斜物理,但它并不容易适用于文本对象。

  2. 想要使用 Sprite Kit 的平滑倾斜功能,我将文本放置在 SKLabelNode 中,并使其 X 坐标与我提供倾斜物理的 SKSpriteNode 相匹配。在我在 SKLabelNode 中添加一段文本之前,这种方法一直运行良好。然后它就变成了一个黑色的矩形...

我发现 Stack Overflow 讨论得出的结论是 SKLabelNode 并不适合按照我想要的方式使用,并且建议使用多行实现或字符串到位图图像转换。多行不是我希望阅读应用程序工作方式的选项。

  • 我在以下位置找到了代码 How do I add text to an image in iOS Swift实现字符串到位图图像的转换,然后将该图像设为 SKSpriteNode。当图像的宽度超过 2000(仅够容纳 50 pt 字体的短句)时,它就变成黑色矩形。我想象将文本分成更小的 block 以适应 2000 个限制,这确实会使代码变得复杂,并使用户统计数据(例如每分钟字数)更难以计算。
  • Screenshot.

    顶部是我想要的文本外观(用户向左/向右倾斜以阅读下一个/上一个),底部的黑色条是文本宽度太大时出现的黑色矩形长:(

    有人对我还可以尝试什么有什么建议吗?再次,我的要求是:

    • 字符串必须在屏幕上显示为长单行
    • 用户倾斜设备以向前/向后阅读
    • 加速很平稳,所以眼睛很舒服:)

    最佳答案

    也许您可以尝试一次将一个句子加载到一个 SKLabelNode 中。您还将有第二个 SKLabelNode 充当甲板缓存。当一个 SKLabelNode 移出屏幕时,您可以将其放置在当前屏幕上的 SKLabelNode 的末尾。这就是 UIKit 中表格 View 的工作原理。这里唯一的区别是您的“表格单元格”水平滚动,并且您必须在它们移出屏幕后执行重置它们的工作。

    关于Swift:给出一个长字符串的文本倾斜物理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38106352/

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