如何解决是否可以在 iPad 应用程序中使用 DatePicker 作为导航栏项?
我想简单地将 SwiftUI 中的 DatePicker 添加到导航栏,这是我的代码:
struct ContentView: View {
@State var selectedDate: Date = Date()
var body: some View {
NavigationView {
vstack {
Text("Hello,world!")
}
.navigationBarItems(
leading: DatePicker(selection: $selectedDate,displayedComponents: .date) {}
)
}
}
}
这在 iOS 上工作正常,但在 iPad 模拟器上,当我单击日期选择器时什么也没有发生,控制台打印一些布局约束错误,并且:
UIDatePicker 0x7fc3511141d0 的布局低于其最小宽度 280。这可能看起来不像预期的,尤其是大于 正常字体大小。
解决方法
看起来导航栏中的领先位置被侧边栏按钮占据了。作为 .navigationBarItems
的替代方法,您可以使用 toolbar
并指定一个 placement
:
struct ContentView: View {
@State var selectedDate = Date()
var body: some View {
NavigationView {
VStack {
Text("Hello,world!")
}
.toolbar {
ToolbarItem(placement: .principal) {
DatePicker(selection: $selectedDate,displayedComponents: .date) {}
}
}
}
}
}
注意:我使用了 .principal
位置,因为似乎没有足够的空间将 DatePicker
呈现为 .navigationBarLeading
。不过,您可以随意尝试其他展示位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。