我正在构建我的第一个应用程序,并且在HStack中遇到.buttonStyle的不清楚的问题。
这是我的.buttonStyle代码:

struct GradientBackgroundStyle: ButtonStyle {

func makeBody(configuration: Self.Configuration) -> some View {
    configuration.label
        .foregroundColor(Color.white)
        .font(.title)
        .padding()
        .frame(width: 300)
        .background(LinearGradient(gradient: Gradient(colors: [Color.red, Color.orange]), startPoint: .leading, endPoint: .trailing))
        .cornerRadius(15.0)
        .scaleEffect(configuration.isPressed ? 0.9 : 1.0)
}
}
这是我体内的代码:
var body: some View {
    NavigationView {
        VStack(spacing: 15.0) {
            Divider()
            HStack() {
                NavigationLink(destination: TestView()) {
                    Text("1")
                }.buttonStyle(GradientBackgroundStyle())
        }
        HStack {
            NavigationLink(destination: TestView()) {
                Text("2")
            }.buttonStyle(GradientBackgroundStyle())
        }
        HStack {
            NavigationLink(destination: TestView()) {
                Image(systemName: "star.fill")
                Text("Tasks")
            }.buttonStyle(GradientBackgroundStyle())
        }
        Spacer()
    }

    .navigationBarTitle(
            Text("Title"))
我期望第三个NavigationLink发生的事情是这样的:
Image+text one button
但是我得到的是:
Image+text seperated
我尝试摆弄,但似乎无法弄清楚是什么原因造成的。在此先感谢您的帮助!

最佳答案

您将需要一个同时包含图像和文本的HStack。

      HStack {
          NavigationLink(destination: TestView()) {
            HStack {
              Image(systemName: "star.fill")
              Text("Tasks")
            }
          }.buttonStyle(GradientBackgroundStyle())
      }

ios - SwiftUI-HStack NavigationLink“按钮”分别向两个元素添加按钮样式?-LMLPHP

关于ios - SwiftUI-HStack NavigationLink“按钮”分别向两个元素添加按钮样式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62331834/

10-13 06:34