struct ContentView: View {
var body: some View {
ScalingHeaderScrollView {
ZStack {
Rectangle()
.fill(.gray.opacity(0.15))
Image("header")
}
} content: {
Text("↓ Pull to refresh ↓")
.multilineTextAlignment(.center)
.padding()
}
}
}
header
- 用于您的头部的 @ViewBuilder
content
- 用于您的内容的 @ViewBuilder
将当前的折叠进度值传递到进度绑定中:0 表示完全未折叠,1 表示完全折叠
.collapseProgress(_ progress: Binding<CGFloat>)
允许为 ScrollView 到达底部设置回调
.scrollViewDidReachBottom(perform: @escaping () -> Void)
允许为下拉刷新动作设置回调和 isLoading
状态
.pullToRefresh(isLoading: Binding<Bool>, perform: @escaping () -> Void)
允许为下拉加载更多动作设置回调和 isLoading
状态
.pullToLoadMore(isLoading: Binding<Bool>, perform: @escaping () -> Void)
允许内容滚动重置,需要将 Binding 更改为 true
.scrollToTop(resetScroll: Binding<Bool>)
允许更改当前头部高度,需要更改状态,可能的值为 .collapsed、.expanded 或 .custom(CGFloat)
.snapHeaderToState(state: Binding<SnapHeaderState?>, animated: Bool)
更改头部的最小和最大高度,默认值为 min = 150.0
和 max = 350.0
.height(min: CGFloat = 150.0, max: CGFloat = 350.0)
向上滚动时 - 在实际的头部折叠和简单地将其向上移动之间切换(默认情况下向上移动)
.allowsHeaderCollapse()
向下滚动时 - 启用(默认禁用)头部缩放
.allowsHeaderGrowth()
启用/禁用(默认禁用)头部捕捉。可用模式
.disabled
- 禁用头部捕捉。.immediately
- 一旦您松开手指,头部会自动捕捉到最小或最大高度。.afterFinishAccelerating
- 在滚动视图减速结束时,头部会自动捕捉到最小或最大高度。.setHeaderSnapMode(.immediately)
为头部捕捉设置自定义位置(如前一点所述)。在 0...1 中指定任意数量的值来设置捕捉点,0 - 完全折叠的头部,1 - 完全展开的头部
.headerSnappingPositions(snapPositions: [CGFloat])
设置滚动视图将自动捕捉到的自定义初始位置。在 0...1 中指定一个值,0 - 完全折叠的头部,1 - 完全展开的头部
.initialSnapPosition(initialSnapPosition: CGFloat)
隐藏滚动指示器(默认为 false)
.hideScrollIndicators()
要尝试 ScalingHeaderScrollView 示例
https://github.com/exyte/ScalingHeaderScrollView.git
cd <ScalingHeaderScrollViewRepo>/Example/
pod install
安装所有依赖项Example.xcworkspace/
在 Xcode 中打开项目dependencies: [
.package(url: "https://github.com/exyte/ScalingHeaderScrollView.git")
]
要安装 ScalingHeaderScrollView
,只需将以下行添加到您的 Podfile 中
pod 'ScalingHeaderScrollView'
要使用 Carthage 将 ScalingHeaderScrollView
集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "Exyte/ScalingHeaderScrollView"
PopupView - Toasts 和弹窗库
Grid - 最强大的 Grid 容器
AnimatedTabBar - 带有多种预设动画的选项卡栏
MediaPicker - 可自定义的媒体选择器
Chat - 聊天 UI 框架,具有完全可定制的消息单元格、输入视图和内置的媒体选择器
OpenAI OpenAI REST API 的 Wrapper 库
AnimatedGradient - 动画线性渐变
ConcentricOnboarding - 动画引导流程
FloatingButton - 浮动按钮菜单
ActivityIndicatorView - 多个动画加载指示器
ProgressIndicatorView - 多个动画进度指示器
FlagAndCountryCode - 每个国家的电话代码和标志
SVGView - SVG 解析器
LiquidSwipe - 流体导航动画