Bb9f61a4addc24d31a5e53edd7fa9996
SwiftUI中 ScrollView中读取拖动位置 onPreferenceChange GeometryReader (教程含源码)

实战需求

SwiftUI中 ScrollView中读取拖动位置

本文价值与收获

看完本文后,您将能够作出下面的界面

ScrollView中读取拖动位置

ScrollView中读取拖动位置

ScrollView中读取拖动位置

ScrollView中读取拖动位置

看完本文您将掌握的技能

  • onPreferenceChange
  • static func reduce(value: inout Value, nextValue: () -> Value)
  • GeometryReader
  • DragGesture().onChanged

基础知识

onPreferenceChange (_:perform:)

添加一个操作,以在指定的首选项键的值更改时执行。

func onPreferenceChange<K>(_ key: K.Type = K.self, perform action: @escaping (K.Value) -> Void) -> some View where K : PreferenceKey, K.Value : Equatable

返回值

action当value key更改时触发的视图。

参量

  • key
    监视价值变化的关键。

  • action
    值key更改时要执行的操作。该action封传递的新值作为参数。


实战代码

```
import SwiftUI

struct ContentView: View {

@State var locationY: CGFloat = .zero
top Created with Sketch.