【发布时间】:2020-01-25 15:17:13
【问题描述】:
我在 SwiftUI 中实现选取框(滚动)文本视图时遇到了困难。问题是文本需要在原始 (0) 位置停留 2 秒,然后开始向左移动,出现在右侧并继续滚动直到 0 位置并再次等待 2 秒。
【问题讨论】:
-
此答案适用于动态文本:stackoverflow.com/a/60794726/5185323
标签: swiftui
我在 SwiftUI 中实现选取框(滚动)文本视图时遇到了困难。问题是文本需要在原始 (0) 位置停留 2 秒,然后开始向左移动,出现在右侧并继续滚动直到 0 位置并再次等待 2 秒。
【问题讨论】:
标签: swiftui
您可以使用 this video 中的内容来使某些东西正常工作,但老实说,如果您的视图以任何方式响应,则很难使其适用于不同的屏幕尺寸。但是,如果您将该视频中的基础用于动画并将其与几何阅读器相结合以获得零位置和最右边的入口点位置,则可以使滚动定位正确。
至于开始和停止,我建议您使用 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 秒,然后再次运行。
请注意,要使选取框文本起作用,您还需要重复文本两次,以便文本从右侧进入动画,同时从左侧离开。祝你好运!
【讨论】: