Я хочу использовать UIInterpolatingMotionEffect в SwiftUI. Я думал использовать координатор как способ соединить UIKit и SwiftUI безуспешно. Я хочу изменить количество тени прямоугольника с закругленными углами в зависимости от наклона iPhone. Любая идея достичь этого. Возможно, для этого можно получить базовый UIV ie.
import SwiftUI
extension Color {
static let offWhite = Color(red: 225 / 255, green: 225 / 255, blue: 235 / 255)
}
struct ContentView: View {
@State var x_tilt = 10.0
@State var y_tilt = 10.0
var body: some View {
ZStack {
Color.offWhite
VStack {
RoundedRectangle(cornerRadius: 25)
.fill(Color.offWhite)
.frame(width: 300, height: 300)
.shadow(color: Color.black.opacity(0.2),
radius: 10,
x: CGFloat(x_tilt),
y: CGFloat(y_tilt))
.shadow(color: Color.white.opacity(0.7),
radius: 10,
x: CGFloat(5 + (-0.5 * x_tilt)),
y: CGFloat(5 + (-0.5 * y_tilt))
)
Slider(value: $x_tilt, in: -10...30, step: 1)
Text("X: \(x_tilt)")
Slider(value: $y_tilt, in: -10...30, step: 1)
Text("Y: \(-0.5 * y_tilt)")
}
}
.edgesIgnoringSafeArea(.all)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Я бы хотел использовать датчик движения (наклон) для динамического изменения значений x_tilt
и y_tilt
. Я моделирую это прямо сейчас с помощью двух ползунков.