sách gpt4 ai đã đi

ios - 出现 View 时工具栏跳到位

In lại 作者:行者123 更新时间:2023-12-05 04:38:04 25 4
mua khóa gpt4 Nike

我在底部有一个带有工具栏的 View ,我正在使用 NavigationLink 导航到该 View 。但是当 View 出现时,工具栏显示得有点太低了。大约半秒钟后,它突然跳到位。它只会在应用程序启动后第一次发生。如果我返回第一个 View 并再次开始导航,它会立即显示在正确的位置。

这里是重现它的文件:

内容 View :

struct ContentView: View {
var body: một số View {
NavigationView {
NavigationLink {
ToolbarView()
} label: {
Text("Hello, world!")
}
}
}
}

工具栏 View :

struct ToolbarView: View {
var body: một số View {
ScrollView {
VStack {
Text("Text1")
Text("Text2")
}
}
.thanh công cụ {
ToolbarItemGroup(placement: .bottomBar) {

Spacer()

Button {
} label: {
Image(systemName: "trash")
}
}
}
}
}

这是 SwiftUI 的错误吗?

这是跳跃前后的照片。检查底部的垃圾。如果工具栏有颜色,那当然会更明显。

Before the jump

After the jump

1 Câu trả lời

  1. 你的代码将在 iOS 16 上产生最糟糕的效果,它根本不显示工具栏!因此,首先,在 上使用以下修饰符添加指定导航样式导航 View :
.navigationViewStyle(.stack)
  1. 如果第一个和第二个 View 都没有相同的容器,您会看到意想不到的移动,因此您可以添加一个空的工具栏来放置到 navigationLink 的位置:
ToolbarItemGroup(placement: .bottomBar) { Spacer() }

完整的代码是:

struct ContentView: View {
var body: một số View {
NavigationView {
NavigationLink {
ToolbarView()
} label: {
Text("Hello, world!")
}
.thanh công cụ {
ToolbarItemGroup(placement: .bottomBar) { Spacer() } // <- prevents main page jumpings
}
}
.navigationViewStyle(.stack) // <- prevents detail page jumping
}
}

演示

Demo不用担心 RTL 布局

关于ios - 出现 View 时工具栏跳到位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70645157/

25 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com