SwiftUI学习100天(Day94 - 项目 18,第三部分)
原创链接:https://www.hackingwithswift.com/100/swiftui
以下内容仅供学习参考:

你准备好结束我们的最终技术项目了吗?我希望如此,因为你还有另一篇评论要完成,还有三个新的挑战要接受。我现在警告你:所有挑战都涉及GeometryReader,因为它会迫使你清楚地思考每个视图的帧的计算方式,以及如何使用它们来创建有趣的效果。
我知道GeometryReader真的能让你头晕目眩,但你要学会适应的唯一方法——有效地使用它就是练习、练习、再练习。
我以前引用过 Amy Morin,但今天我想最后一次引用它。她说,“生活中最伟大的事情往往发生在我们的舒适区之外,怀疑自己走出舒适区的能力会让你陷入困境。” 所以,让今天成为你走出舒适区并随心所欲跳舞GeometryReader的一天吧!
今天你应该完成项目 18 的总结章节,完成它的回顾,然后完成它的所有三个挑战。

布局和几何:总结
我希望这个较小的技术项目在我们漫长的应用程序项目之后证明是一个受欢迎的突破,但我更希望你真的开始对 SwiftUI 的布局系统如何工作有一个良好的心理模型。这个三步布局系统可能听起来很简单,但要完全理解它的后果需要时间。
至于GeometryReader,这是你甚至无需考虑就可以完美解决的事情之一,这很好。但是,当你想要为你的设计添加一点活力时——当你想要在用户与之交互时真正使某些东西栩栩如生——GeometryReader是一种快速而灵活的修复方法,只需几行代码即可提供巨大的功能.
回顾你学到的东西
任何人都可以听完教程,但要记住所教的内容需要实际工作。我的工作是确保你从这些教程中获得尽可能多的知识,因此我准备了一个简短的评论来帮助你检查你的学习情况。
单击此处查看你在此项目中学到的知识:
https://www.hackingwithswift.com/review/ios-swiftui/layout-and-geometry
挑战
最好的学习方法之一是尽可能多地编写自己的代码,因此这里有三个挑战供你完成,以试验你对GeometryReader的了解.
首先,回到ContentView我们的旋转颜色行示例:
完成后:
使滚动视图顶部附近的视图淡出到 0 不透明度——我建议从顶部开始约 200 点。
使视图根据其垂直位置调整比例,靠近底部的视图较大,靠近顶部的视图较小。我建议不要小于常规尺寸的 50%。
对于真正的挑战,让视图在你滚动时改变颜色。为了获得最佳效果,你应该使用初始化程序创建颜色
Color(hue:saturation:brightness:),为色调输入不同的值。
其中每一个都需要你进行一些试验和错误,才能找到行之有效的值。无论如何,你应该使用max()来处理缩放比例,以便视图不会小于其大小的一半,并把min()与色调一起使用,以便色调值不会超过 1.0。




