【发布时间】:2020-01-19 22:03:15
【问题描述】:
我正在尝试在 tvOS 上更改 SwiftUI Button 的颜色。
修改background 几乎可以工作,只是你可以看到底层UIButton 实际上是在背景顶部使用了一个圆形、半透明的图像。这会导致矩形背景位于圆形图像之外的角落处的颜色不同。
添加.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 的图像。
【问题讨论】: