首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按钮隐藏时navigationBarItems位置不一致

按钮隐藏时navigationBarItems位置不一致
EN

Stack Overflow用户
提问于 2019-12-21 16:22:08
回答 2查看 90关注 0票数 2

假设我们在SwiftUI中具有可操作的editMode环境的NavigationView具有以下navigationBarItems:

代码语言:javascript
复制
@Environment(\.editMode) var mode

...

.navigationBarItems(trailing: HStack {
            if mode?.wrappedValue == .active {
                Text("Cancel")
            }
            EditButton()
        }
)

第一次激活editMode后,尾随导航条项的位置不会返回到原始位置,以下是屏幕截图(模拟器中iPad的右侧):

然后,激活编辑模式

到目前为止,行为与预期一样,但当我们切换到停用时,会发生以下情况:

请注意,编辑按钮向左移动,有什么方法可以解决这个问题吗?这是预期的行为吗?我希望它就像editMode停用时的第一张照片

EN

回答 2

Stack Overflow用户

发布于 2020-07-09 10:54:27

我已经把这作为一个bug报告给苹果了。当您减少HStack中的项数时,它似乎不会自动调整大小。因此,剩下的单个按钮位于前两个按钮占据的空间的中心。

未在Xcode 12.0测试版2中修复

票数 0
EN

Stack Overflow用户

发布于 2020-07-30 17:42:43

这个解决方案可能有点老生常谈,但它解决了这个不必要的问题。

我使用了一个私有状态:

代码语言:javascript
复制
@State private var bug: Bool = false

(无论何时需要,您都可以调用self.bug = false (例如.onAppear{...}),并且不要忘记在点击编辑按钮时执行self.bug = true ...)

多亏了这个状态,你可以给编辑按钮加上一个条件偏移量:

代码语言:javascript
复制
.offset(x: self.bug ? 30 : 0)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59434636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档