SwiftUI 按钮仅点击文本部分

标签 swiftui

我的按钮的背景区域未检测到用户交互。与所述按钮交互的唯一方法是点击按钮的文本/标签区域。如何使整个 Button 可点击?

struct ScheduleEditorButtonSwiftUIView: View {

    @Binding  var buttonTagForAction : ScheduleButtonType
    @Binding  var buttonTitle        : String
    @Binding  var buttonBackgroundColor : Color


    let buttonCornerRadius = CGFloat(12)

    var body: some View {

        Button(buttonTitle) {
              buttonActionForTag(self.buttonTagForAction)
        }.frame(minWidth: (UIScreen.main.bounds.size.width / 2) - 25, maxWidth: .infinity, minHeight: 44)

                            .buttonStyle(DefaultButtonStyle())
                            .lineLimit(2)
                            .multilineTextAlignment(.center)
                            .font(Font.subheadline.weight(.bold))
                            .foregroundColor(Color.white)

                            .border(Color("AppHighlightedColour"), width: 2)
                           .background(buttonBackgroundColor).opacity(0.8)

                            .tag(self.buttonTagForAction)
                            .padding([.leading,.trailing], 5)
       .cornerRadius(buttonCornerRadius)

    }
}

最佳答案

这解决了我的问题:

var body: some View {
    GeometryReader { geometry in
        Button(action: {
            // Action
        }) {
            Text("Button Title")
                .frame(
                    minWidth: (geometry.size.width / 2) - 25,
                    maxWidth: .infinity, minHeight: 44
                )
                .font(Font.subheadline.weight(.bold))
                .background(Color.yellow).opacity(0.8)
                .foregroundColor(Color.white)
                .cornerRadius(12)

        }
        .lineLimit(2)
        .multilineTextAlignment(.center)
        .padding([.leading,.trailing], 5)
    }
}

button

您是否有理由使用 UIScreen而不是 GeometryReader ?

关于SwiftUI 按钮仅点击文本部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57333573/

相关文章:

更新 observableObject 时 SwiftUI NavigationView 会弹出

list - 如何删除/调整列表中的分隔符?

NavigationLink 内的 SwiftUI 按钮

list - 带有部分的 SwiftUI 动态列表未正确布局

ios - 支持遗留项目中的 SwiftUI 导航

ios - 如何将观察到的属性传递给其他类?

ios - 如何设置文本字段字符限制 SwiftUI?

SwiftUI Slider 的标签可见性

swift - 我可以将 Snapchat SDK (SnapKit) 与 SwiftUI 一起使用吗?

core-data - @Binding - 将 FetchedResults、单个实体传递给 Core Data + SwiftUI 中的 subview