Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

向右滑动出现界面后, 再向左滑动, 只滑动一小段距离, 跳动非常厉害 #6

Closed
wolfcon opened this issue Jan 8, 2018 · 9 comments

Comments

@wolfcon
Copy link

wolfcon commented Jan 8, 2018

向右滑动出现界面后, 再向左滑动, 只滑动一小段距离, 跳动非常厉害

兄弟, bug有点明显啊

@ChavezChen
Copy link
Owner

我这没有这个问题呀,iOS 10 和 iOS 11都没有。。能提供一下详细的信息么?在什么情况下出现的?

@ChavezChen
Copy link
Owner

你好,我这边测试暂时还是没发现这个情况哦,你那边看看是不是最新的代码咯,因为iOS11刚出来的时候会出现你所述的情况,但是后面已经做修改了。。或者方便留个联系方式看看具体的表现吗?

@wolfcon
Copy link
Author

wolfcon commented Jan 9, 2018

侧滑返回问题.mp4.zip

iPhoneX真机录屏.

@wolfcon
Copy link
Author

wolfcon commented Jan 9, 2018

其实我的项目里早都有这个bug, 看到你的库后发现你也有这个问题😆. 我还没找到解决方法

代码实现跟你是类似的.

@ChavezChen
Copy link
Owner

😓😓我用模拟器没问题。。你手机是什么版本呀。晚上回去找室友借手机看看。。 木有X很尴尬。
222

@ChavezChen
Copy link
Owner

6C1FDDF05C8BFE2DC7C5195AB8A95A00.mp4.zip
我把用真机iPhoneX弹跳的问题调整了一下,基本不会弹了。效果在上面,也可以运行一下我的代码试试,你项目里面也可以按照我这个改一下,因为只有iOS11会有弹跳的问题,我把动画设置成UIView的帧动画,然后判断一下版本把开始时间稍微往后移了一丢丢,就基本把弹跳的那部分过掉了。。这样也会有一点点小问题,就是手势返回的时候刚开始一丢丢可能会不太响应,但是用真机的时候感觉并不明显,体验也不差,应该不会太纠结这个问题,你先看看哈。

@wolfcon
Copy link
Author

wolfcon commented Jan 10, 2018

可以的. 我研究了一下, 其实是Transition动画, 在设置了动画代码, 还没执行之前TransitionView貌似会把最终的动画结束位给算出来, 然后播放动画之前会将界面直接渲染出最终的内容(在ContainerView渲染到界面之前), 动画播放, ContainerView渲染到页面之后, 这中间有大约15~30ms的间隔. 如果在这时候播放动画, 就会导致跳动的问题

我在[UIView animateWithDuration:duration delay:0.03..] 延迟了30毫秒, 我观察了一下, 其实系统的PercentDrivenTransition驱动的动画也是有延迟的. 貌似也是故意做了这个操作避免了跳动问题

@ChavezChen
Copy link
Owner

👍👍👍

@xuezhanying
Copy link

厉害 厉害 ,都是大神,你们说的我完全懵逼。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants