Scaling Header Scroll View
拥有固定头部并随滚动缩小的滚动视图。使用 SwiftUI 编写。
用法
- 将您的标题和内容主体代码放入 ScalingHeaderScrollView 构造函数中。
- 设置必要的修饰符,详见下方。
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>)
允许设置拉刷新动作的回调和 isLoading
状态
.pullToRefresh(isLoading: Binding<Bool>, perform: @escaping () -> Void)
允许内容滚动重置,需要将绑定更改为 true
.scrollToTop(resetScroll: Binding<Bool>)
更改 Header 的最小和最大高度,默认 min = 150.0
和 max = 350.0
.height(min: CGFloat = 150.0, max: CGFloat = 350.0)
向上滚动时 - 在实际 Header 折叠和简单上移(默认上移)之间切换
.allowsHeaderCollapse()
向下滚动时 - 启用(默认禁用)Header 缩放
.allowsHeaderGrowth()
启用(默认禁用)Header 触发(一旦您抬起手指,Header 会自动触发到最小或最大高度)
.allowsHeaderSnap()
设置 Header 触发自定义位置(前一点解释)。指定任何 0...1 范围内的值以设置触发点,0 - 完全折叠的 Header,1 - 完全展开
.headerSnappingPositions(snapPositions: [CGFloat])
设置自定义初始位置,滚动视图将自动触发到该位置。指定 0...1 范围内的值,0 - 完全折叠的 Header,1 - 完全展开
.initialSnapPosition(initialSnapPosition: CGFloat)
隐藏滚动指示器(默认为 false)
.hideScrollIndicators()
示例
要尝试 ScalingHeaderScrollView 的示例
- 克隆存储库
https://github.com/exyte/ScalingHeaderScrollView.git
- 打开终端并运行
cd <ScalingHeaderScrollViewRepo>/Example/
- 运行
pod install
以安装所有依赖项 - 运行并打开
Example.xcworkspace/
以在 Xcode 中打开项目 - 试试!
安装
Swift Package Manager
dependencies: [
.package(url: "https://github.com/exyte/ScalingHeaderScrollView.git")
]
CocoaPods
要安装 ScalingHeaderScrollView
,只需将以下行添加到您的 Podfile 中
pod 'ScalingHeaderScrollView'
Carthage
要使用 Carthage 将 ScalingHeaderScrollView
集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "Exyte/ScalingHeaderScrollView"
需求
- iOS 14+
- Xcode 12+
我们其他开源的 SwiftUI 库
PopupView - 消息和弹出视图库
Grid - 最强大的网格容器
AnimatedTabBar - 具有预设动画的标签栏
MediaPicker - 可定制的媒体选择器
Chat - 可全定制消息单元格、输入视图和内置媒体选择器的聊天 UI 框架
ConcentricOnboarding - 动画引导流程
FloatingButton - 浮动按钮菜单
ActivityIndicatorView - 多种动画加载指示器
ProgressIndicatorView - 多种动画进度指示器
SVGView - SVG 解析器
LiquidSwipe - 液体导航动画