更改 tvOS 上 SwiftUI 中按钮的颜色

2024-03-07

我正在尝试更改 SwiftUI 的颜色Button在电视操作系统上。

修改background几乎可以工作,除了你可以看到底层UIButton实际上是在背景顶部使用圆形半透明图像。这会导致矩形背景位于圆形图像之外的角落处出现不同的颜色。

Adding .padding强调这个问题:

struct ContentView: View {

    @State
    var selected = false

    var body: some View {

        Button(action: {
            self.selected.toggle()
        }) {
               Text($selected.wrappedValue ? "On":"Off")
                .foregroundColor(.white)
            }.padding(.all)
             .background(self.selected ? Color.green : Color.blue)
        }
    }
}

一个相关的问题是更改“焦点”视图的颜色,因为我怀疑这与按钮本身相同的视图,改变了获胜大小和颜色。

tvOS 中的典型技术UIButton就是更改按钮图像,但是似乎没有任何方法可以访问底层的图像UIButton.


再说一次,我只在 iOS 上检查过,但这应该有帮助:

struct ContentView: View {

    @State var selected = false

    var body: some View {

        Button(action: { self.selected.toggle() }) {
            Text($selected.wrappedValue ? "On":"Off")
                .foregroundColor(.white)
        }   .padding(.all)
            .background(RoundedRectangle(cornerRadius: 5.0)
                            .fill(self.selected ? Color.green : Color.blue))

    }
}

您可以将任何视图传递到 .background() 修饰符中,因此您可能还想尝试在其中放置 Image() 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 tvOS 上 SwiftUI 中按钮的颜色 的相关文章

随机推荐