Прерывание пользовательского перехода в середине ⇐ IOS
-
Anonymous
Прерывание пользовательского перехода в середине
При попытке реализовать собственную анимацию перехода я застрял в части прерывания. Я хочу сделать следующее: нажав dimmingView во время перехода, он должен быть отменен и представлен контроллер представления закрыт.
Это мой затемненный взгляд:
класс UIDimmingView: UIView { переопределить func hitTest (_ точка: CGPoint, с событием: UIEvent?) -> UIView? { let hitView = super.hitTest(точка, с событием) вернуть hitView == себя? ноль: hitView } } Вот как я создаю и назначаю распознаватель жестов касания для моего затемняемого представления:
lazy var dimmingView: UIDimmingView = { пусть просмотр = UIDimmingView() view.backgroundColor = .black.withAlphaComponent(0.4) просмотр.альфа = 0,0 обратный вид }() переопределить funcpresentationTransitionWillBegin() { Guard пустьContainerView, пусть PresentView еще {возвращение} ContainerView.addGestureRecouncer(self.tapGesture) ContainerView.insertSubview(self.dimmingView, at: 0) self.dimmingView.fillSuperview() PresentView.layer.cornerRadius = 20,0 PresentView.layer.cornerCurve = .continious PresentView.layer.masksToBounds = true } И просто, событие onTap, я делаю это:
@objc Private func onTap(_ sender: UITapGestureRecouncer) { self.presentedViewController.dismiss (анимированный: правда) } Окончательный результат выглядит так.
Я посмотрел в Google, спросил ChatGPT. Однако не удалось найти способ отклонить его в середине перехода. Как мне это сделать?
При попытке реализовать собственную анимацию перехода я застрял в части прерывания. Я хочу сделать следующее: нажав dimmingView во время перехода, он должен быть отменен и представлен контроллер представления закрыт.
Это мой затемненный взгляд:
класс UIDimmingView: UIView { переопределить func hitTest (_ точка: CGPoint, с событием: UIEvent?) -> UIView? { let hitView = super.hitTest(точка, с событием) вернуть hitView == себя? ноль: hitView } } Вот как я создаю и назначаю распознаватель жестов касания для моего затемняемого представления:
lazy var dimmingView: UIDimmingView = { пусть просмотр = UIDimmingView() view.backgroundColor = .black.withAlphaComponent(0.4) просмотр.альфа = 0,0 обратный вид }() переопределить funcpresentationTransitionWillBegin() { Guard пустьContainerView, пусть PresentView еще {возвращение} ContainerView.addGestureRecouncer(self.tapGesture) ContainerView.insertSubview(self.dimmingView, at: 0) self.dimmingView.fillSuperview() PresentView.layer.cornerRadius = 20,0 PresentView.layer.cornerCurve = .continious PresentView.layer.masksToBounds = true } И просто, событие onTap, я делаю это:
@objc Private func onTap(_ sender: UITapGestureRecouncer) { self.presentedViewController.dismiss (анимированный: правда) } Окончательный результат выглядит так.
Я посмотрел в Google, спросил ChatGPT. Однако не удалось найти способ отклонить его в середине перехода. Как мне это сделать?
Мобильная версия