SwiftUI:在横向列表中点击导航栏不会将列表滚动到顶部
Posted
技术标签:
【中文标题】SwiftUI:在横向列表中点击导航栏不会将列表滚动到顶部【英文标题】:SwiftUI: Tapping navigation bar in landscape list does not scroll list to top 【发布时间】:2021-03-09 21:41:59 【问题描述】:还有其他人遇到过这种不正确的行为吗?
-
使用以下代码创建应用:
import SwiftUI
struct ContentView: View
var body: some View
NavigationView
List
ForEach (0..<100, id:\.self) index in
Text("Hello, \(index)!")
.padding()
.navigationBarTitle("Test", displayMode: .inline)
将列表滚动到最初不可见的某个项目。
点击导航栏标题
结果:列表滚动到顶部。
-
在 iPhone 的横向模式下尝试相同的操作。
结果:列表没有滚动到顶部
我已就此提交反馈 #FB9035540。只是想知道是否有其他人经历过这种情况以及他们是如何解决的?
【问题讨论】:
【参考方案1】:实际上,点击导航栏的标题在纵向或横向都没有效果。您遇到的是点击状态栏时发生的行为。
来自documentation:
滚动到顶部手势是点击状态栏。当用户做出此手势时,系统会要求最靠近状态栏的滚动视图滚动到顶部。
导航栏的标题和状态栏非常接近,所以你可能认为是标题在做滚动。
在横向模式下,没有状态栏,所以手势不起作用。
【讨论】:
谢谢!不错的收获。以上是关于SwiftUI:在横向列表中点击导航栏不会将列表滚动到顶部的主要内容,如果未能解决你的问题,请参考以下文章