Этот код работает нормально на iOS, но, как вы показали, в tvOS видна нижележащая кнопка UIB.Я не уверен, как добраться до соответствующей кнопки или ее изображения, но, похоже, вы можете взломать ее сейчас (пока Apple не решит проблему или не предоставит способ добраться до этой кнопки).
Сначалапереместите отступ вверх, чтобы изменить текст так, чтобы он правильно воздействовал на нижележащую кнопку.
Во-вторых, (и это хак) обрежьте вид после модификатора фона с помощью cornerRadius.Пока радиус равен или больше, чем у базовой кнопки, он отсекает лишний фон.(Конечно, вы видите не зеленый цвет, а цвет, возникающий из-за зеленого цвета, наложенного на серый полупрозрачного изображения кнопки. По крайней мере, так показано в Xcode.)
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)
.cornerRadius(5)
}
}