Ios 英雄动画启动延迟

Ios 英雄动画启动延迟,ios,swift,animation,Ios,Swift,Animation,我正在尝试实现两个控制器之间的转换,其中包含一个导航控制器。 我有这个方法来处理平移手势: @objc func pannedCell(gesture: UIPanGestureRecognizer) { guard let animatedView = gesture.view as? HotelListingCollectionViewCell else { return } let translation = gesture.translation(

我正在尝试实现两个控制器之间的转换,其中包含一个导航控制器。 我有这个方法来处理平移手势:

@objc func pannedCell(gesture: UIPanGestureRecognizer) {
    guard let animatedView = gesture.view as? HotelListingCollectionViewCell else {
        return
    }
    let translation = gesture.translation(in: nil)
    let screenHeight = self.rootView.bounds.height
    let progress = ((-1 * translation.y) / screenHeight) * 2
    print(progress)

    switch gesture.state {
    case .began:
        self.initialViewPostion = animatedView.center
        Hero.shared.defaultAnimation = .fade
            let vc = ListingSearchViewController()
            vc.viewModel.hotels.value = self.viewModel.hotels.value
            self.navigationController?.pushViewController(vc, animated: true)
    case .changed:
        Hero.shared.update(progress)
        let pos = CGPoint(
                x: animatedView.center.x + translation.x,
                y: self.rootView.hotelResultsCollectionView.center.y + translation.y
        )
            Hero.shared.apply(modifiers: [
                .position(pos),
                .useGlobalCoordinateSpace,
                .useOptimizedSnapshot
            ], to: animatedView)
    default:
        if progress > 0.8 {
                Hero.shared.finish()
        } else {
                Hero.shared.cancel()
        }
    }
}
这里的问题是执行pushViewController方法需要约1秒的时间,因此当我开始拖动视图时,它会在我开始在屏幕上移动手指约1秒后移到我的手指下

我做错了


谢谢

好的,我想我找到了什么

这个问题似乎与我在一个手势处理程序的案例中所做的操作有关

我将新视图控制器的实例化从这个回调中移出,以避免在动画期间使UI线程过载,并且一切似乎都按预期工作