当前位置: 首页 > article >正文

SwiftUI 5.0 中宝藏视图修改器 containerRelativeFrame 趣谈(下)

在这里插入图片描述

概览

小伙伴们都知道,为了将 SwiftUI 中多如牛毛的视图井然有序、有条不紊的组织起来,我们必须借助容器(Container)伏虎降龙般地威力。而如何最大限度的让容器中的子视图能根据容器尺寸安排自己的空间,则需要一些技术手段来洞幽察微。

在这里插入图片描述

在过去,我们往往使用 GeometryReader 来干这种“力气活”,不过自从有了 containerRelativeFrame 修改器,GeometryReader 从此就可以退居二线了。

在本篇博文中,您将学到如下内容:

  • 概览
  • 4. 滚动对齐
  • 5. 最大的自由度:按需定制
  • 6. 衍生应用:获取父容器尺寸
  • 总结

相信学完本课后,小伙伴们一定会对宝藏修改器 containerRelativeFrame 的使用豁然开朗、恍然大悟。那还等什么呢?让我们马上开始容器布局大冒险吧!

Let‘s go!!!😉


4. 滚动对齐

在上篇博文的代码中,我们已经可以颇为轻松的将子视图按照容器的可见尺寸(Visible Size in Container)进行等分,但是仍然无法保证容器内容每次滚动停止时正好对齐到某个子视图的边缘:

在这里插入图片描述

幸运的是,辅以同样是 SwiftUI 5.0 新引入的 Target Behavior 机制,我们即可一发入魂,完美解决这一问题:

ScrollView(.horizontal) {
   
    LazyHStack(spacing: 0) {
   
        ForEach(0..<10) {
    _ in
            Color.rand
                .containerRelativeFrame(
                    .horizontal,
                    count: 3,
                    span: 1,
                    spacing: 0

http://www.kler.cn/a/547397.html

相关文章:

  • 工业相机选型五要素
  • 不需要移植和配置xinetd 等相类似执行文件,tftp-hpa服务器交叉移植使用说明
  • 什么是平面环形无影光源
  • List对象进行排序
  • Spring中的IOC详解
  • CloudberryDB(六)SPI拓展功能
  • Esxi8.0设置nvidia显卡直通安装最新驱动
  • 一种访问网络中主机图片的方法
  • 【信息学奥赛一本通 C++题解】1281:最长上升子序列
  • Android笔记:java.lang.UnsupportedOperationException 异常的正确解决方法
  • flv实时监控视频
  • unity学习36:老版的动画 Animation
  • Java Swing-5.jar 使用 jpackage 打包成 windows 可安装应用(exe,msi,免安装版exe)
  • typescript快速入门之常见类型
  • 双指针专题1:有效三角形的个数
  • 如何学习HBase:从入门到精通的完整指南
  • 编译RV1126SDK记录
  • SQL 注入漏洞原理以及修复方法
  • 【开源免费】基于Vue和SpringBoot的旅游管理系统(附论文)
  • 3DsMax快捷键