SwiftUI на iOS 15, custom buttonStyle больше не работает, отлично работает на iOS 14, как исправить?
Как описано в названии. Я использовал пользовательский стиль кнопки SwiftUI на iOS 14. Он работает нормально, но теперь не работает на iOS 15. Ошибок нет, предупреждений нет, я не знаю, как с этим бороться. Кто-нибудь знает, как это исправить?
struct InnerShadowButtonStyle: ButtonStyle {
func makeBody(configuration: Configuration) -> some View {
let p = configuration.isPressed
return configuration.label
.overlay (
RoundedRectangle(cornerRadius: 0)
.stroke(Color.clear, lineWidth: 4)
.shadow(color: p ? .gray : .clear, radius: 3, x: 3, y: 3)
.clipShape(RoundedRectangle(cornerRadius: 0))
.opacity(p ? 1.0 : 0.0)
)
}
}
1 ответ
Решение
Seems like SwiftUI 3 doesn't draw transparent rectangle at all, as you stroke it with
Color.clear
.
You can force it with something like
Color.black.opacity(0.001)
:
configuration.label
.overlay (
RoundedRectangle(cornerRadius: 0)
.stroke(Color.black.opacity(0.001), lineWidth: 4)
.shadow(color: p ? .gray : .clear, radius: 3, x: 3, y: 3)
.clipShape(RoundedRectangle(cornerRadius: 0))
.opacity(p ? 1.0 : 0.0)
)