I found that watchOS 9.2 seems to break the complicationForeground()
modifier. In previous systems, a View
modified by complicationForeground()
was rendered white, while an unmodified View
was rendered with the watch face tint color. This is the correct behavior.
However, in watchOS 9.2, this behavior has been reversed. The View
modified by complicationForeground()
renders the tint color, and the opposite is white‽ This causes third-party complications to look very inconsistent on tinted watch faces.
Of course, this issue belongs to ClockKit, and I'm not sure if there are similar issues in the new WidgetKit.
Will this issue be fixed please?
@ViewBuilder
func complicationLayer(_ layer: Compatibility.ComplicationLayer) -> some View {
if #available(watchOS 9.2, *) {
switch layer {
case .foreground:
self
case .background:
self.complicationForeground()
}
} else {
switch layer {
case .foreground:
self.complicationForeground()
case .background:
self
}
}
}
It's ugly but it works. I don't want Apple to reverse its semantics again, even if it's wrong. So be it.