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

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

相关文章:

  • 架构设计系列(三):架构模式
  • Windchill-PDM-设置环境
  • 宝塔和docker的区别
  • 无人机航迹规划:孟加拉虎优化( Savannah Bengal Tiger Optimization ,SBTO)算法求解无人机路径规划MATLAB
  • P6792 [SNOI2020] 区间和 Solution
  • 闲鱼IP属地是通过电话号码吗?
  • Windows上安装Go并配置环境变量(图文步骤)
  • 如何判断对象是否存在某个属性
  • 【动态规划篇】:当回文串遇上动态规划--如何用二维DP“折叠”字符串?
  • 2517. 礼盒的最大甜蜜度(Maximum Tastiness of Candy Box)
  • I/O 事件的概念
  • Windows 常用程序名
  • 3.1 AI Agent产品管理革命:从愿景定义到用户价值交付的全链路方法论
  • 利用Python pandas 数据清洗详细教程
  • 天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结
  • 数据结构篇
  • 环境影响评价(EIA)中,土地利用、植被类型及生态系统图件的制作
  • [MySQL#1] database概述 常见的操作指令 MySQL架构 存储引擎
  • 【kafka系列】消费者重平衡
  • 探秘 Map 和 Set 底层:二叉搜索树与哈希表的深度解析,解锁高效数据存储秘密!
  • 上海市税务局回应刘晓庆被举报涉嫌偷漏税:正依法依规办理
  • 华东政法与复旦上医签署合作框架协议,医学与法学如何交叉融合?
  • 宜昌谱写新叙事:长江大保护与高质量发展如何相互成就
  • 陕西宁强县委书记李宽任汉中市副市长
  • 奥迪车加油时频繁“跳枪”维修两年未解决,4S店拒退换:可延长质保
  • 科技部等七部门:优先支持取得关键核心技术突破的科技型企业上市融资