SwiftUI导航栏中的项目很难点击按钮

时间:2020-03-03 19:55:27

标签: ios swift swiftui

我有一个SwiftUI NavigationView,其中一个Button作为导航栏的主要内容。似乎只有当用户在那个小的Image内点击时,才会触发按钮动作。我可以在不影响导航栏高度的情况下增大可点击区域吗?

我尝试将.frame添加到Image,但这会使导航栏太大。

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView {
            Text("Foo")
                .navigationBarTitle(Text("Title"), displayMode: .inline)
                .navigationBarItems(leading:
                    HStack {
                        Button(action: {
                            print("tapped")
                        }) {
                            Image(systemName: "info.circle")
                        }
                    })
            }
    }
}

2 个答案:

答案 0 :(得分:7)

(其中之一)以下修饰符可能会有所帮助:

.imageScale(.large)

来自SFSymbols的图像具有三种尺寸:

  • .small用于在文本中内联使用
  • .medium用作图标
  • .large用作导航栏或底部栏中的按钮

.padding()

在图像周围添加填充。填充也应该是可轻敲的。

答案 1 :(得分:0)

尝试一下

struct ContentView: View {
    var body: some View {
        NavigationView {
            Text("Foo")
                .navigationBarTitle(Text("Title"), displayMode: .inline)
                .navigationBarItems(leading:
                    HStack {
                        Button(action: {
                            print("tapped")
                        }) {
                            Image(systemName: "info.circle").imageScale(.large) //Here is the change in image scale property
                        }
                    })
            }
    }
}

快乐编码...