HeroTransitions / HeroTransitions/Hero

使用 view.hero.id present到二级页面,然后二级页面实现UIPanGestureRecognizer功能,会造成页面卡死

Open
#723 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Swift
Stars
22.5k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

## What did you do?
从一级页面present到二级页面时,在二级页面实现
view.hero.id = ****
self.isHeroEnabled = true 并且还在二级页面设置UIPanGestureRecognizer侧滑手势,

@objc func slide(pan: UIPanGestureRecognizer) {
let translationX = pan.translation(in: pan.view).x
if translationX > 0 {
// 向右平移滑动
let progress = translationX / (ScreenW / 3)
switch pan.state {
case .began:
dismiss(animated: true)
case .changed:
Hero.shared.update(progress)

let position = CGPoint(x: translationX + view.center.x, y: pan.translation(in: pan.view).y + view.center.y)
Hero.shared.apply(modifiers: [.position(position)], to: view)
default:
if progress + pan.velocity(in: pan.view).x > 0.5 {
Hero.shared.finish()
} else {
Hero.shared.cancel()
}
}
}
}

## What did you expect to happen?
我以为能够正常侧滑返回一级页面.

## What happened instead?
最后发现slide方法正常执行,但侧滑功能失效,然后返回一级页面时整个APP就卡死了. 然而不知道为什么模拟器测试是没有任何问题一切正常.

## General Information

* Hero Version:

* iOS Version(s): 14.0

* Swift Version: 5.4.2

* Devices/Simulators: Devices

* Reproducible in Examples? (Yes/No): NO

## Demo Project

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.