簡體   English   中英

ScrollView 獲取/設置滾動 position 與 SwiftUI

[英]ScrollView get/set scroll position with SwiftUI

我正在嘗試以編程方式滾動到ScrollView中的特定 Y position ,當單擊按鈕時,如何設置ScrollView position?

ScrollView {
 Button(action: {

 }) {
    Text("Sign In").fontWeight(.heavy)        
 }
}

我想要這個按鈕操作,以訪問和更改 ScrollView position。

SwiftUI 2.0

由於 iOS 14 可以使用ScrollViewReader (即 ScrollView 容器中的某些特定視圖可以分配標識符並通過ScrollViewProxy.scrollTo分配給該視圖),如下例所示

用 Xcode 12b 測試。

struct DemoScrollToView: View {
    var body: some View {
        ScrollView {
            ScrollViewReader { sp in     // << here !!
                Button(action: {
                    withAnimation {
                        sp.scrollTo(80)            // << here !!
                    }
                }) {
                    Text("Sign In").fontWeight(.heavy)
                }

                ForEach(0..<100) { i in
                    Text("Item \(i)").padding().id(i)       // << here !!
                }
            }
        }
    }
}

我試圖以編程方式滾動到ScrollView特定Y位置,單擊按鈕時,如何設置ScrollView位置?

ScrollView {
 Button(action: {

 }) {
    Text("Sign In").fontWeight(.heavy)        
 }
}

我希望此按鈕動作可以訪問和更改ScrollView的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM