实现 SwiftUI 下,常见的带头部嵌套滚动效果的页面框架。
目前实现了两种方案,各有特点。
- 实现逻辑
监听页面手势,实时改变header
的高度,手势停止时,修改header
的高度为完全消失或完全出现两种情况。
根据header
的高度情况设置页面是否可滚动。
- 特点
- 手势发生停止后
header
会完全消失或完全出现,即类似自动吸附的效果; - 再进行手势操作,才会操作到页面的滚动;
ScreenRecording_09-18-2024.16-09-10_1.MOV
- 实现逻辑
页面滚动时,回调页面框架,页面框架实时改变header
的高度。
- 特点
header
的滚动和页面的滚动协同;header
可停留在某个高度- 手势连续不会断开;