我正在尝试为应用程序创建一个
ButtonStyle
。我可以找到很多例子,但我无法获得太多实际细节。
这是一个简单的例子:
struct SpecialButton: ButtonStyle {
func makeBody(configuration: ButtonStyleConfiguration) -> some View {
configuration.label
.font(.system(size: 10, weight: .bold))
.imageScale(.large)
}
}
.imageScale()
值似乎仅限于三种尺寸之一,但.large
值仍然小于我想要的尺寸,而且我想要更大的图像尺寸。
有没有办法在
ButtonStyle
中做到这一点?
您可以定义
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())