有可能有一个日期picker作为一个导航栏项在iPad应用程序?



我想简单地在SwiftUI中添加一个日期picker到导航栏,这是我的代码:

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。但是,请随意尝试其他位置。

最新更新