KYMagicMove
KYMagicMove copied to clipboard
进入第二个页面先偏移后正常
你好,感谢你的分享。发现一个问题,进入第二个界面的时候,图片先偏移到右边,然后回到中间位置,是什么原因啊?
[container layoutIfNeed]; 请在执行动画的时候加上这一句。
这个问题,在iOS7时候存在,iOS8修复了,iOS9又出现了,建议直接使用UIViewControllerContextTransitioning 中提供的finalFrameForViewController来重新改变VC.view.frame
eg: toVC.view.frame = [transitionContext finalFrameForViewController:toVC];
我试了在各个地方添加[view layoutIfNeeded] ,没什么效果。
本人 iOS 9.1 模拟器亲测最新代码是有效的,并无异常。至于 layoutIfNeed 加在哪里,请看 commit 记录。而且源代码中已经存在 toVC.view.frame = [transitionContext finalFrameForViewController:toVC]; 了。没必要再加一句。归根结底应该是 自动布局 和 转场动画 的执行顺序差异导致的。使用 layoutIfNeed 可以提前开始自动布局,解决此错误。