相关疑难解决方法(0)

SwiftUI ButtonStyle - 如何检查按钮是否被禁用或启用?

要在 SwiftUI 中设置按钮样式,根据我的理解,您需要扩展ButtonStyle和实现,func makeBody(configuration: Self.Configuration) -> some View在其中开始configuration.labelButton视图的引用应用修改。

现在,除了label字段之外,ButtonStyle.Configuration还有一个布尔字段 for isPressed,但这似乎就是全部。

如何检查按钮是启用还是禁用?

例如,我想在按钮周围绘制一个边框,如果按钮启用,我希望边框为蓝色,如果禁用,则边框为灰色。

我的第一个猜测是这样的:

    func makeBody(configuration: Self.Configuration) -> some View {
        configuration.label
            .overlay(
                RoundedRectangle(cornerRadius: 4).stroke(configuration.isEnabled ? Color.blue : Color.gray, lineWidth: 1).padding(8)
            )
    }
Run Code Online (Sandbox Code Playgroud)

但是没有isEnabled领域。

Apple 提供的PlainButtonStyle显然可以访问这些信息,因为头文件中的 doc 注释声明它说“样式可以应用视觉效果来指示按钮的按下、聚焦或启用状态”。

/// A `Button` style that does not style or decorate its content while idle.
///
/// The style may apply a visual effect to indicate …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

28
推荐指数
5
解决办法
6663
查看次数

标签 统计

ios ×1

swift ×1

swiftui ×1