首页 > 解决方案 > SwiftUI 中的选取框(滚动)文本

问题描述

我在 SwiftUI 中实现选取框(滚动)文本视图时遇到了困难。问题是文本需要在原始 (0) 位置停留 2 秒,然后开始向左移动,出现在右侧并继续滚动直到 0 位置并再次等待 2 秒。

标签: swiftui

解决方案


您可以使用此视频中的内容来获得一些工作,但老实说,如果您的视图以任何方式响应,则很难使其适用于不同的屏幕尺寸。但是,如果您将该视频中的基础用于动画并将其与几何阅读器相结合以获得您的零位置和最右边的入口点位置,您可以正确地获得滚动定位。

至于开始和停止,我建议您使用 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 秒,然后再次运行。

请注意,要使选取框文本起作用,您还需要重复文本两次,以便文本从右侧进入动画,同时从左侧离开。祝你好运!


推荐阅读