相关疑难解决方法(0)

SwiftUI 模式演示只能从 navigationBarItems 工作一次

当您从导航栏项目内的按钮显示模式时,这是 SwiftUI 中的一个错误。在下面的代码中,按钮 1 按预期工作,但按钮 2 仅工作一次:

struct DetailView: View {

    @Binding var isPresented: Bool
    @Environment (\.presentationMode) var presentationMode

    var body: some View {
        NavigationView {
            Text("OK")
            .navigationBarTitle("Details")
            .navigationBarItems(trailing: Button(action: {
                self.isPresented = false
                // or:
                // self.presentationMode.wrappedValue.dismiss()
            }) {
                Text("Done").bold()
            })
        }
    }
}

struct ContentView: View {

    @State var showSheetView = false

    var body: some View {
        NavigationView {
            Group {
                Text("Master")
                Button(action: { self.showSheetView.toggle() }) {
                    Text("Button 1")
                }
            }
            .navigationBarTitle("Main")
            .navigationBarItems(trailing: Button(action: {
                self.showSheetView.toggle()
            }) { …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

8
推荐指数
1
解决办法
1228
查看次数

使用偏移时的导航栏项目可点击区域切割

在 SwiftUI 中,请考虑以下导航栏:

在此处输入图片说明

以下是尾随.navigationBarItems的声明方式:

HStack(spacing: 0) {
    Button(action: {
        self.addListModal = true
    }, label: {
        NavBarImage(image: "plus")
    })
    // more buttons here
Run Code Online (Sandbox Code Playgroud)

这是NavBarImage结构:

struct NavBarImage: View {
    var image: String

    var body: some View {
        ZStack {
            Rectangle().foregroundColor(Color.red).frame(width: 40, height: 45)
            Image(systemName: image)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

红色在那里,所以我可以看到每个按钮的可点击区域应该是什么。这ZStack有一个Rectangle想法介绍给我的一种方式,使图像更容易点击。

现在,我想将项目向右移动,以便它们更符合下面的列表内容。我尝试添加一个.offset到我的HStack

HStack(spacing: 0) {
    // buttons
}
.offset(x: 15, y: 0)
Run Code Online (Sandbox Code Playgroud)

产生这个结果:

在此处输入图片说明

所以这对我来说看起来很完美。然而,问题是最右侧的导航按钮的可点击区域在右侧被切断。

我已经用绿色说明了可点击区域的切断,这里:

在此处输入图片说明

所述按钮的绿色区域不再记录任何点击。

我已经使用负尾随试图.paddingHStack相反,它并没有区别。有没有办法纠正这个问题,也许是通过UINavigationBar …

ios swift swiftui

7
推荐指数
1
解决办法
560
查看次数

标签 统计

ios ×2

swift ×2

swiftui ×2