Roh*_*ana 15 scrollview bounce swiftui
任何Modifier可供停止跳动ScrollView的swiftUI?
struct RoomDetailsView: View {
var body: some View {
ScrollView(showsIndicators: false) {
Image("test")
Text("Hello Text")
...
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试过下面的代码,但它对我不起作用。看起来它已被弃用
ScrollView(alwaysBounceVertical: true) {
Image("test")
Text("Hello Text")
...
...
}
Run Code Online (Sandbox Code Playgroud)
Ans*_*ngh 14
尝试使用这行代码:
UIScrollView.appearance().bounces = false
Run Code Online (Sandbox Code Playgroud)
你可以这样使用它:-
struct RoomDetailsView: View {
init() {
UIScrollView.appearance().bounces = false
}
var body: some View {
ScrollView(showsIndicators: false) {
Image("test")
Text("Hello Text")
...
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以在 AppDelegate 中编写这一行,以将此行为贯穿到您的应用程序中。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UIScrollView.appearance().bounces = false
}
Run Code Online (Sandbox Code Playgroud)
Gol*_*ber 14
ScrollView(showsIndicators: false)
Run Code Online (Sandbox Code Playgroud)
UIScrollView.appearance().bounces = false
Run Code Online (Sandbox Code Playgroud)
UIScrollView.appearance().bounces = true
Run Code Online (Sandbox Code Playgroud)
如果您在 init 中将 UIScrollView.appearance().bounces 设置为 false,它将阻止应用程序的所有 ScrollView 弹跳。通过在 onAppear 修饰符中将其设置为 true,在 onDisappear 修饰符中将其设置为 false,可以确保它仅影响一个 ScrollView。
你的 ScrollView 应该看起来像这样。
ScrollView(showsIndicators: false) {
...
...
...
}
.onAppear {
UIScrollView.appearance().bounces = false
}
.onDisappear {
UIScrollView.appearance().bounces = true
}
Run Code Online (Sandbox Code Playgroud)
Pat*_*tar 11
苹果在 iOS 16.4 中引入了一个名为的新修饰符scrollBounceBehavior,可用于防止 ScrollView 在内容小于屏幕时弹起。
https://developer.apple.com/documentation/swiftui/view/scrollbouncebehavior(_:axes:)
struct RoomDetailsView: View {
var body: some View {
ScrollView(showsIndicators: false) {
Image("test")
Text("Hello Text")
...
...
}
.scrollBounceBehavior(.basedOnSize)
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用SwiftUI-Introspect库:
ScrollView {
// some content
}
.introspectScrollView { scrollView in
scrollView.alwaysBounceVertical = false
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6152 次 |
| 最近记录: |