SnapToScroll:SwiftUI水平滚动快照容器





项目名称:hstack-snap-to-scroll

项目概述

SnapToScroll 是一个用于SwiftUI的容器视图,它提供了一个水平滚动快照的功能。用户可以通过简单的三步集成这个功能到自己的项目中。这个库允许开发者通过HStackSnap.snapAlignmentHelper来实现元素的水平对齐和滚动。

快速开始

  1. 导入SnapToScroll模块。

  2. HStack替换为HStackSnap

  3. 为你的视图添加.snapAlignmentHelper

示例代码:

import SnapToScroll                               // Step 1
...

HStackSnap(alignment: .center(32)) {              // Step 2

    ForEach(myModels) { viewModel in

        MyView(
            selectedIndex: $selectedIndex,
            viewModel: viewModel
         )
         .snapAlignmentHelper(id: viewModel.id)   // Step 3
     }
}                  

更多示例可以在SnapToScrollDemo/ContentView.swift中找到。

配置

HStackSnap 提供了两个可定制的属性:

  • alignment:定义元素的排列方式,可以是leading(CGFloat)center(CGFloat)

  • coordinateSpace:设置自定义的坐标空间名称,适用于多个不同大小的HStackSnap

.snapAlignmentHelper 提供了两个选项:

  • id:必需的,为元素提供一个唯一的ID。

  • coordinateSpace:与HStackSnap中的coordinateSpace相同。

限制

  • HStackSnap目前仅适用于静态内容。

工作原理

在渲染时,HStackSnap读取每个子元素的框架数据,并计算每个元素应该使用的scrollOffset。然后在DragGesture.onEnded时,计算最近的快照位置,并将滚动偏移设置到该点。

更多细节可以在HStackSnap.swiftViews/HStackSnapCore.swift中查看。

或许喜欢

PopUp:简单弹出视图实现

PopUp是一个SwiftUI库,用于实现简单且可定制的弹出视图,支持自定义动画、背景材质和行为,适用于iOS和macOS应用。

最近更新 2024-12-15

Flow:SwiftUI中的流式布局视图排列工具

Flow是一个SwiftUI布局工具,用于按流式排列视图,支持自定义对齐和间距,适用于标签集合等场景,并支持动画变换。

最近更新 2024-12-09

SwiftUIPager:SwiftUI原生组件构建的分页器

SwiftUIPager是一个用SwiftUI构建的分页器组件,支持垂直和水平分页,视图回收,自定义UI和动画效果,适用于iOS和macOS应用。

最近更新 2024-12-10

热榜

Made with in Shangrao,China By 老雷

Copyright © devler.cn 1987 - Present

赣ICP备19009883号-1