visionOS空间计算实战开发教程Day 11 标题动画

Coding Alan 1年前 (2023-12-06) 1596次浏览 0个评论 扫描二维码

本文我们要在visionOS内实现一个标题输出的动画效果。主要讲ViewModifier协议,修饰符(modifier)应用于视图或另一个视图修饰符,生成原值的另一个版本。在希望创建一个可应用于不同视图的修饰符时可实现ViewModifier协议。

首先定义ViewModel,本例中的模型比较简单,仅定了三个变量,分别表示当前文本、标题输出是否完成以及最终的标题文本。

因模型中有默认值且需要在程序运行的过程中进行修改,所以在入口文件中需要将模型注入到环境中:

接下来就是本文的重点了,我们需要自定义一个文本修饰符。虽然可以直接将修饰符应用于视图,但更常见和地道的做法是使用修饰符来定义一个View来包装这个视图修饰符。我们在代码里就是这么做的,在视图中我们传入了5个变量,textisFinished是需要进行修改的,所以使用了Bindingcursor定义了光标,默认使用了常见的|isAnimated表示是否显示动画。

TypeTextModifier中可以看到,如果isAnimatedfalse,就直接显示最终文本。而在任务中有两个for循环,分别设置初始的光标闪烁效果以及后续逐个文字和光标交替输出的效果,最后等待片刻,标记输出结束。

ContentView内容如下:

这里在屏幕中央输出两段文本,第一段会以修饰符的动画效果进行输出直至结束,第二段在第一段文本输出完成后显示。

visionOS空间计算实战开发教程Day 11 标题动画

示例代码:GitHub仓库

其它相关内容请见虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记

喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址