iOS12.3.1 iPhone8 present UIAlertController,UIActivityViewController关闭无响应 排查记录

471 阅读1分钟

present UIActivityViewController后,部分控件能响应事件,但点取消无响应,测试之后发现UIAlertController有相同问题,但不是所有的present都会出现问题

通过View UI Hierarchy查看发现界面呈现异常,取消按钮没有显示在Controller内,

写UIActivityViewController子类,打印日志,发现出现bug时viewDidAppear未执行

比较代码,调试之后发现layer.speed = 0注释后,问题得到解决

百度present layer.speed =0,发现iOS11上也有这问题,UIImageView为空且 layer.speed =0同时存在才会产生这个问题

继续Google,发现动画执行的速度,有叠加效果(来源浅谈Layer和Animation),运行速度会被父Layer影响,

代码测试,切换UIWindow present UIActivityViewController无异常

猜测UIImageView为空时,影响同一个UIWindow的视图树,后续页面动画受到layer.speed =0的影响,无法正常显示