如何修复 SwiftUI 中的 navigationTitle 和工具栏之间的布局冲突?
Posted
技术标签:
【中文标题】如何修复 SwiftUI 中的 navigationTitle 和工具栏之间的布局冲突?【英文标题】:How do I fix a layout conflict between navigationTitle and toolbar in SwiftUI? 【发布时间】:2021-10-28 18:41:34 【问题描述】:我希望我的导航栏看起来像这样:
在 NavigationView 中,我使用以下代码来添加标题和 navigationBarItems:
.navigationBarTitleDisplayMode(.large)
.navigationTitle("Questions")
.toolbar(content:
ToolbarItemGroup(placement: .navigationBarTrailing)
Button("Help") showingAbout.toggle()
NavigationLink(destination:ImportView())
Text("Import")
)
它看起来像我想要的那样,但是当我运行代码时,我总是遇到布局约束问题:
2021-10-28 20:35:16.370287+0200 merig[50881:1781380] [LayoutConstraints] 无法同时满足约束。 以下列表中的至少一个约束可能是您不想要的。 试试这个: (1)查看每个约束并尝试找出您不期望的; (2) 找到添加了一个或多个不需要的约束的代码并修复它。 ( “<0x600001646e90 h:><0x600001647c00 _uimodernbarbutton:0x13ed237b0.leading="=" uilayoutguide:0x600000c7bc60><0x600001647cf0 h:><0x6000016451d0 uilayoutguide:0x600000c7bb80 _uinavigationbarcontentview:0x13ed1f5a0.trailing><0x60000164b390 _uinavigationbarcontentview:0x13ed1f5a0.><0x600001645090 h:>0x600001645090>0x60000164b390>0x6000016451d0>0x600001647cf0>0x600001647c00>0x600001646e90>
<0x600001646e90 h:>0x600001646e90>
SwiftUI 并不完美,它可能只是thread 中讨论的“日志噪音”。但是,每当我收到有关布局约束的问题时,将 .navigationViewStyle(.stack)
(或旧版本 SwiftUI 的等效项)添加到 NavigationView
似乎可以摆脱它们。
【讨论】:
以上是关于如何修复 SwiftUI 中的 navigationTitle 和工具栏之间的布局冲突?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SwiftUI 中的图像修复 NavigationView 列表行中增加的高度"
带有 SidebarListStyle 的 SwiftUI 列表没有圆角?
SwiftUI:如何在 UIViewRepresentable UITextField 上调用 becomeFirstResponder 时修复“通过属性检测到的 AttributeGraph 循环”