swift iOS 17交互式小部件-删除按钮背景和填充

kyvafyod  于 2023-11-16  发布在  Swift
关注(0)|答案(2)|浏览(127)

我正在尝试创建新的iOS 17交互式小部件。为了能够添加“action”,我想使用Button的新init(_:intent:)初始化器,它允许我在按下按钮时执行给定的意图。
问题是,我的按钮应该只是绿色的内部矩形与微笑的形象,但系统添加了自己的背景与填充。有没有办法删除它?
示例代码:

Button(intent: MyIntent()) {
    MyLabel()
}

字符串
它看起来像什么:


的数据

zphenhs4

zphenhs41#

我发现我必须将按钮的样式设置为PlainButtonStyle。现在背景和填充被删除了。

Button(intent: MyIntent()) {
    MyLabel()
}.buttonStyle(PlainButtonStyle())

字符串


的数据

mgdq6dx1

mgdq6dx12#

如果你想在按下按钮时应用自定义样式或执行自定义动画,你可以这样做:

private struct MoveUpButtonStyle: ButtonStyle {
    var resizeScale: CGFloat
    var offset: CGPoint

    func makeBody(configuration: Configuration) -> some View {
        configuration.label
            .contentShape(Rectangle())
            .scaleEffect(configuration.isPressed ? resizeScale : 1.0)
            .offset(x: configuration.isPressed ? offset.x : 0, y: configuration.isPressed ? offset.y : 0)
    }
}

字符串
就像这样称呼它:

.buttonStyle(MoveUpButtonStyle(resizeScale: 2.0, offset: CGPoint(x: 0, y: -40)))

相关问题