如何在SwiftUI中禁用ScrollView反弹

时间:2019-11-11 10:19:08

标签: scrollview swiftui bounce

是否有任何Modifier可用来阻止ScrollView中的swiftUI反弹?

struct RoomDetailsView: View {

    var body: some View {
        ScrollView(showsIndicators: false) {
            Image("test")
            Text("Hello Text")
            ...
            ...
        }
    }
}

我尝试了以下代码,但对我而言不起作用。看起来已弃用

ScrollView(alwaysBounceVertical: true) {
       Image("test")
       Text("Hello Text")
       ...
       ...
}

2 个答案:

答案 0 :(得分:9)

尝试使用以下代码行:

UIScrollView.appearance().bounces = false

您可以这样使用它:-

struct RoomDetailsView: View {
   init() {
      UIScrollView.appearance().bounces = false
   }

   var body: some View {
      ScrollView(showsIndicators: false) {
         Image("test")
         Text("Hello Text")
         ...
         ...
          }
      }
  }

或者您可以在AppDelegate中编写此行,以将此行为始终应用到您的应用中。

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    UIScrollView.appearance().bounces = false
 }

答案 1 :(得分:1)

您可以使用 SwiftUI-Introspect 库:

ScrollView {
    // some content
}
.introspectScrollView { scrollView in
    scrollView.alwaysBounceVertical = false
}