如何在SwiftUI中符合ButtonStyle协议?

时间:2019-09-29 12:54:38

标签: ios swift swiftui

我想在SwiftUI中创建一个自定义按钮,希望在整个应用程序中重复使用。该按钮基本上只是一个没有标签的可点击图像。 我考虑过为它创建一个自定义的ButtonStyle。 不过,我在遵守ButtonStyle协议时遇到问题,因为我不知道应该在此处选择哪种类型。

我已经尝试了some View的{​​{1}}或仅仅是View的尝试,但是没有成功。

<#type>

尝试使用struct customButtonStyle: ButtonStyle { typealias Body = <#type> } View时收到的错误消息是:  some View,XCode只是再次添加此行Type 'customButtonStyle' does not conform to protocol 'ButtonStyle'

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您可以在makeBody函数中定义自定义样式。按下按钮时,您可以使用configuration.isPressed来配置按钮。

struct MyButtonStyle: ButtonStyle {

    func makeBody(configuration: Configuration) -> some View {
        configuration.label
            // all of the modifiers you want to apply in your custom style e.g.:
            .foregroundColor(configuration.isPressed ? .red : .blue)
    }

}