ScrollView
🎑

ScrollView

开发者
创建时间
Mar 18, 2025 10:29 AM
标签

基础滚动行为属性

  1. scrollIndicators(_:)
      • 控制滚动指示器的显示
      • 示例:.scrollIndicators(.visible).scrollIndicators(.hidden)
      • 参数:.visible.hidden.automatic
  1. scrollDismissesKeyboard(_:)
      • 控制滚动时键盘的行为
      • 示例:.scrollDismissesKeyboard(.immediately)
      • 参数:.immediately.interactively.never
  1. scrollBounceBehavior(_:)
      • 控制滚动到边缘时的弹性行为
      • 示例:.scrollBounceBehavior(.always)
      • 参数:.always.automatic.basedOnSize
  1. scrollClipDisabled(_:)
      • 控制是否禁用滚动视图的内容裁剪
      • 示例:.scrollClipDisabled(true)
  1. scrollTargetBehavior(_:)
      • 定义滚动目标行为
      • 示例:.scrollTargetBehavior(PagingBehavior())
  1. scrollPosition(id:)
      • 绑定滚动位置,用于编程方式控制滚动位置
      • 示例:.scrollPosition(id: $selectedID)
  1. scrollPosition(_:)
      • 另一种绑定滚动位置的方法
      • 示例:.scrollPosition($scrollPosition)
  1. scrollTargetLayout(isEnabled:)
      • 控制是否启用滚动目标布局
      • 示例:.scrollTargetLayout(isEnabled: true)
  1. scrollDisabled(_:)
      • 禁用滚动功能
      • 示例:.scrollDisabled(true)
  1. safeAreaInset(edge:spacing:content:)
      • 为滚动视图添加安全区域插入
      • 示例:.safeAreaInset(edge: .bottom) { ... }

内容布局属性

  1. contentMargins(_:)
      • 设置内容边距
      • 示例:.contentMargins(.horizontal, 20)
  1. contentMargins(_:_:edges:)
      • 设置特定边缘的内容边距
      • 示例:.contentMargins(20, edges: .all)
  1. contentShape(_:)
      • 定义内容的形状
      • 示例:.contentShape(Rectangle())
  1. scrollContentBackground(_:)
      • 控制滚动内容的背景
      • 示例:.scrollContentBackground(.hidden)

特殊交互属性

  1. simultaneousGesture(_:)
      • 添加手势识别器,与滚动手势同时响应
      • 示例:.simultaneousGesture(TapGesture().onEnded { ... })
  1. highPriorityGesture(_:)
      • 添加高优先级手势识别器
      • 示例:.highPriorityGesture(DragGesture().onChanged { ... })
  1. coordinateSpace(name:)
      • 定义坐标空间
      • 示例:.coordinateSpace(name: "scrollView")
  1. onAppear(perform:)
      • 视图出现时执行的操作
      • 示例:.onAppear { ... }
  1. onDisappear(perform:)
      • 视图消失时执行的操作
      • 示例:.onDisappear { ... }

辅助功能属性

  1. accessibilityScrollAction(_:)
      • 定义辅助功能滚动动作
      • 示例:.accessibilityScrollAction { direction in ... }
  1. accessibilityElement(children:)
      • 控制辅助功能元素的子元素
      • 示例:.accessibilityElement(children: .contain)

特定平台属性

  1. refreshable(action:) (iOS/iPadOS)
      • 添加下拉刷新功能
      • 示例:.refreshable { await loadData() }
  1. keyboardDismissMode(_:) (iOS/iPadOS)
      • 控制键盘消失模式
      • 示例:.keyboardDismissMode(.onDrag)
  1. ignoresSafeArea(_:edges:)
      • 忽略安全区域
      • 示例:.ignoresSafeArea(.keyboard, edges: .bottom)

其他通用视图属性

ScrollView 还可以使用所有通用的 View 修饰符,例如:
  1. background(_:)
      • 设置背景
      • 示例:.background(Color.gray.opacity(0.1))
  1. overlay(_:)
      • 设置叠加层
      • 示例:.overlay(alignment: .bottomTrailing) { ... }
  1. shadow(color:radius:x:y:)
      • 添加阴影
      • 示例:.shadow(radius: 5)
  1. opacity(_:)
      • 设置不透明度
      • 示例:.opacity(0.9)
  1. padding(_:_:)
      • 添加内边距
      • 示例:.padding()
  1. frame(width:height:alignment:)
      • 设置固定尺寸
      • 示例:.frame(height: 300)
这些修饰符可以组合使用,根据您的需求自定义 ScrollView 的行为和外观。请注意,某些修饰符可能需要特定的 iOS/iPadOS/macOS 版本支持。您可以根据实际项目需求选择合适的修饰符。