基础滚动行为属性
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 版本支持。您可以根据实际项目需求选择合适的修饰符。