SwiftUI之GeometryReader

SwiftUI的一个神奇之处在于,我们在做某些功能的时候,无需过多地关心布局信息,而是把主要精力放在业务逻辑部分,后续的文章中,我会专门写一篇Data Flow的文章。

那么SwiftUI布局的核心原理是什么呢? 主要分3个步骤:

父view提供一个建议的size

子view根据自身的特性返回一个size

父view使用子view返回的size对子view进行布局


GeometryReader的主要作用就是能够获取到父view建议的尺寸。

GeometryProxy

在上边例子中,我们用到了一个proxy参数,这个参数的类型是GeometryProxy,我们先看看它的定义:

size比较直观,就是返回父view建议的尺寸

subscript可以让我们获取.leading,.top等等类似这样的数据

safeAreaInsets可以获取安全区域的Insets

frame(in:)要求传入一个CoordinateSpace类型的参数,也就是坐标空间,可以是.local.global或者  .named(),其中 .named()可以自定义坐标空间,这个在下边的例子中会用到

https://zhuanlan.zhihu.com/p/157799541?utm_id=0

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容