swiftui - SwiftUI 中的选取框(滚动)文本
问题描述
我在 SwiftUI 中实现选取框(滚动)文本视图时遇到了困难。问题是文本需要在原始 (0) 位置停留 2 秒,然后开始向左移动,出现在右侧并继续滚动直到 0 位置并再次等待 2 秒。
解决方案
您可以使用此视频中的内容来获得一些工作,但老实说,如果您的视图以任何方式响应,则很难使其适用于不同的屏幕尺寸。但是,如果您将该视频中的基础用于动画并将其与几何阅读器相结合以获得您的零位置和最右边的入口点位置,您可以正确地获得滚动定位。
至于开始和停止,我建议您使用 Timer 来切换一个名为 scrollText 的布尔 @State 变量,以在动画持续 2 秒后开始/停止动画。您可以首先在 .onAppear 中切换动画,如下所示:
Text("Hello World")
.offset(x: scrollText ? zeroPoint : screenEntryPoint)
.animation(Animation.linear(duration: 8).repeatForever(autoreverses: false))
.onAppear {
self.scrollText.toggle()
}
如果您随后将计时器设置为 10 秒以切换滚动文本,您将能够让动画运行 8 秒,暂停 2 秒,然后再次运行。
请注意,要使选取框文本起作用,您还需要重复文本两次,以便文本从右侧进入动画,同时从左侧离开。祝你好运!
推荐阅读
- php - 如何将 Apple Pay 令牌发送到 Stripe?
- javascript - 在Javascript中为获取设置标头时哪个更好?
- javascript - 从对象数组访问 JSON 数据,然后从数组中的对象访问
- notifications - 浏览器通知在 Firefox 附加组件中不起作用
- python-3.x - 如何将文件中的数字插入matplotlib白色窗口?
- matplotlib - 在颜色之间打勾标签(离散着色器)
- c# - 我怎样才能让我的业务逻辑只执行一次,所以它只改变一次对象
- javascript - jquery(服务器端)使用ajax进行搜索和排序
- reactjs - 在异步中反应笑话测试 Promise
- json - 如何编组忽略结构选项?