fix a bug about ios

This commit is contained in:
2026-08-31 13:37:38 +08:00
parent 637101bcdb
commit 7e4c0f5f90
4 changed files with 113 additions and 34 deletions

View File

@@ -5,24 +5,29 @@ import UIKit
/// OralTrainerPlayerView
/// - /
/// - / / 退退 /
/// - / / SwiftUI
/// -
struct PlayerSurfaceView: UIViewRepresentable {
let controller: PlayerController
var onVerticalSwipe: ((Bool) -> Void)?
func makeUIView(context: Context) -> VideoSurfaceView {
let view = VideoSurfaceView()
view.playerLayer.player = controller.player
view.controller = controller
view.onVerticalSwipe = onVerticalSwipe
return view
}
func updateUIView(_ uiView: VideoSurfaceView, context: Context) {
uiView.playerLayer.player = controller.player
uiView.onVerticalSwipe = onVerticalSwipe
}
}
final class VideoSurfaceView: UIView {
weak var controller: PlayerController?
var onVerticalSwipe: ((Bool) -> Void)?
override class var layerClass: AnyClass {
AVPlayerLayer.self
@@ -82,6 +87,12 @@ final class VideoSurfaceView: UIView {
let velocity = recognizer.velocity(in: self)
let dx = translation.x
let dy = translation.y
if abs(dy) > abs(dx),
abs(dy) >= minSwipeDistance,
abs(velocity.y) >= minSwipeVelocity {
onVerticalSwipe?(dy < 0)
return
}
guard abs(dx) >= abs(dy),
abs(dx) >= minSwipeDistance,
abs(velocity.x) >= minSwipeVelocity else {