如何解决当单个非滚动项位于VStack中时,SwiftUI不会折叠导航栏
滚动时导航栏出现问题,导航栏不会折叠到很小的地方,只有在VStack
中有一个附加的“非滚动”项时才会发生。
以下代码可以正常工作
var body: some View {
NavigationView {
VStack {
ScrollView {
LazyVStack {
ForEach(0..<100) { number in
Text("\(number)")
}
}
}
}
.navigationBarTitle("Home")
}
}
,其运行方式如下:
但是,当我在顶层VStack
中添加其他内容时,导航栏将不再折叠。所以这段代码:
var body: some View {
NavigationView {
VStack {
SegmentedControl(selectedSegmentIndex: $currentTabIndex,segments: [.new,.new])
ScrollView {
LazyVStack {
ForEach(0..<100) { number in
Text("\(number)")
}
}
}
}
.navigationBarTitle("Home")
}
}
结果:
是否有办法将滚动视图的偏移量与导航栏折叠相关联?还是其他解决方法?
解决方法
合拢是NavigationView & ScrollView/List
的一种特殊行为。因此,如果需要,可以将所有内容都放在ScrollView
内,例如
var body: some View {
NavigationView {
ScrollView {
VStack {
SegmentedControl(selectedSegmentIndex: $currentTabIndex,segments: [.new,.new])
LazyVStack {
ForEach(0..<100) { number in
Text("\(number)")
}
}
}
}
.navigationBarTitle("Home")
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。