Skip to main content

回転を検知する

このように extension しておくと、 onRotate で拾えるようになる

swift
struct DeviceRotationViewModifier: ViewModifier {
let action: (UIDeviceOrientation) -> Void

func body(content: Content) -> some View {
content
.onAppear()
.onReceive(NotificationCenter.default.publisher(for: UIDevice.orientationDidChangeNotification)) { _ in
action(UIDevice.current.orientation)
}
}
}

extension View {
func onRotate(perform action: @escaping (UIDeviceOrientation) -> Void) -> some View {
self.modifier(DeviceRotationViewModifier(action: action))
}
}
swift
.onRotate { newOrientation in
}