我正在尝试更改 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(使用前将#替换为@)