基础滚动行为属性
scrollIndicators(_:)- 控制滚动指示器的显示
- 示例:
.scrollIndicators(.visible)或.scrollIndicators(.hidden) - 参数:
.visible、.hidden或.automatic
scrollDismissesKeyboard(_:)- 控制滚动时键盘的行为
- 示例:
.scrollDismissesKeyboard(.immediately) - 参数:
.immediately、.interactively或.never
scrollBounceBehavior(_:)- 控制滚动到边缘时的弹性行为
- 示例:
.scrollBounceBehavior(.always) - 参数:
.always、.automatic或.basedOnSize
scrollClipDisabled(_:)- 控制是否禁用滚动视图的内容裁剪
- 示例:
.scrollClipDisabled(true)
scrollTargetBehavior(_:)- 定义滚动目标行为
- 示例:
.scrollTargetBehavior(PagingBehavior())
scrollPosition(id:)- 绑定滚动位置,用于编程方式控制滚动位置
- 示例:
.scrollPosition(id: $selectedID)
scrollPosition(_:)- 另一种绑定滚动位置的方法
- 示例:
.scrollPosition($scrollPosition)
scrollTargetLayout(isEnabled:)- 控制是否启用滚动目标布局
- 示例:
.scrollTargetLayout(isEnabled: true)
scrollDisabled(_:)- 禁用滚动功能
- 示例:
.scrollDisabled(true)
safeAreaInset(edge:spacing:content:)- 为滚动视图添加安全区域插入
- 示例:
.safeAreaInset(edge: .bottom) { ... }
内容布局属性
contentMargins(_:)- 设置内容边距
- 示例:
.contentMargins(.horizontal, 20)
contentMargins(_:_:edges:)- 设置特定边缘的内容边距
- 示例:
.contentMargins(20, edges: .all)
contentShape(_:)- 定义内容的形状
- 示例:
.contentShape(Rectangle())
scrollContentBackground(_:)- 控制滚动内容的背景
- 示例:
.scrollContentBackground(.hidden)
特殊交互属性
simultaneousGesture(_:)- 添加手势识别器,与滚动手势同时响应
- 示例:
.simultaneousGesture(TapGesture().onEnded { ... })
highPriorityGesture(_:)- 添加高优先级手势识别器
- 示例:
.highPriorityGesture(DragGesture().onChanged { ... })
coordinateSpace(name:)- 定义坐标空间
- 示例:
.coordinateSpace(name: "scrollView")
onAppear(perform:)- 视图出现时执行的操作
- 示例:
.onAppear { ... }
onDisappear(perform:)- 视图消失时执行的操作
- 示例:
.onDisappear { ... }
辅助功能属性
accessibilityScrollAction(_:)- 定义辅助功能滚动动作
- 示例:
.accessibilityScrollAction { direction in ... }
accessibilityElement(children:)- 控制辅助功能元素的子元素
- 示例:
.accessibilityElement(children: .contain)
特定平台属性
refreshable(action:)(iOS/iPadOS)- 添加下拉刷新功能
- 示例:
.refreshable { await loadData() }
keyboardDismissMode(_:)(iOS/iPadOS)- 控制键盘消失模式
- 示例:
.keyboardDismissMode(.onDrag)
ignoresSafeArea(_:edges:)- 忽略安全区域
- 示例:
.ignoresSafeArea(.keyboard, edges: .bottom)
其他通用视图属性
ScrollView 还可以使用所有通用的 View 修饰符,例如:
background(_:)- 设置背景
- 示例:
.background(Color.gray.opacity(0.1))
overlay(_:)- 设置叠加层
- 示例:
.overlay(alignment: .bottomTrailing) { ... }
shadow(color:radius:x:y:)- 添加阴影
- 示例:
.shadow(radius: 5)
opacity(_:)- 设置不透明度
- 示例:
.opacity(0.9)
padding(_:_:)- 添加内边距
- 示例:
.padding()
frame(width:height:alignment:)- 设置固定尺寸
- 示例:
.frame(height: 300)
这些修饰符可以组合使用,根据您的需求自定义 ScrollView 的行为和外观。请注意,某些修饰符可能需要特定的 iOS/iPadOS/macOS 版本支持。您可以根据实际项目需求选择合适的修饰符。
