SwiftUI:如何增加按钮可以触发的区域?

5cg8jx4n  于 2023-10-15  发布在  Swift
关注(0)|答案(2)|浏览(139)

如何在不改变UI的情况下增加按钮的触发区域?
这是我的代码

struct ContentView: View {
    var body: some View {
        NavigationView {
            Text("Text")

            .navigationBarTitle(Text("Title"))
            .navigationBarItems(
                leading:
                Button(action: { print("add") }) {
                    Image(systemName: SFSymbolName.plus)
                        .font(.system(size: 18))
                }
            )
        }
    }
}
xqkwcwgp

xqkwcwgp1#

对于这种特殊情况,您可以将填充添加到按钮的label的所有边缘(不包括前导边缘):

Button(action: { print("add") }) {
    Text("+")
        .padding(EdgeInsets(top: 20, leading: 0, bottom: 20, trailing: 50))
}
.background(Color.red) // This is just for seeing the hit area. You should get rid of it

注意最大可显示区域应在标题上方的矩形内:

[

此外,请注意,只有区域酒吧将是可扩展的。因此,在上面的示例中,标题的重叠和条形图顶部的重叠将NOT是可重叠的!

j8yoct9x

j8yoct9x2#

Button与它的内容一样大。在你的情况下,它和图像一样大。您的按钮或可缩放区域很小,因为图像很小。
您可以将图像包含在更大的frame中,如下所示:

Button(action: { print("add") }) {
    Image(systemName: SFSymbolName.plus)
        .font(.system(size: 18))
        .frame(width: 40, height: 40)
}

相关问题