如何创建具有较大图像的 ButtonStyle?

问题描述 投票:0回答:1

我正在尝试为应用程序创建一个

ButtonStyle
。我可以找到很多例子,但我无法获得太多实际细节。

这是一个简单的例子:

struct SpecialButton: ButtonStyle {
    func makeBody(configuration: ButtonStyleConfiguration) -> some View {
        configuration.label
            .font(.system(size: 10, weight: .bold))
            .imageScale(.large)
    }
}

.imageScale()
值似乎仅限于三种尺寸之一,但
.large
值仍然小于我想要的尺寸,而且我想要更大的图像尺寸。

有没有办法在

ButtonStyle
中做到这一点?

button swiftui
1个回答
0
投票

您可以定义

LabelStyle
以按照您想要的方式设置标签样式:

struct SpecialLabel: LabelStyle {
    func makeBody(configuration: Configuration) -> some View {
        HStack {
            configuration.icon
                .font(.largeTitle)
            configuration.title
                .font(.system(size: 10, weight: .bold))
        }
    }
}

当然,如果愿意,您可以使用

VStack

然后在您的自定义中使用特殊标签样式

ButtonStyle

struct SpecialButton: ButtonStyle {
    func makeBody(configuration: ButtonStyleConfiguration) -> some View {
        configuration.label
            .labelStyle(SpecialLabel())
    }
}

使用示例:

Button("Delete", systemImage: "trash") {}
    .buttonStyle(SpecialButton())

Screenshot

© www.soinside.com 2019 - 2024. All rights reserved.