设备介绍:Xcode 7.3.1 模拟器 iPhone5~6p 项目有用到第三方侧滑
问题:在didSelectRowAtIndexPath 里写点击 弹出AlertController; 第一次点击cell 很顺畅的弹出AlertController,第二次延迟了2~3秒弹出(假如双击,也会很顺畅的弹出)
解决:
1.在网上查了,很多人说把cell 的selectionStyle 属性设为NO,即cell.selectionStyle = UITableViewCellSelectionStyleNone; 可以解决,但是我的项目并没有得到解决。。
尝试方法1:我把项目拷给我朋友,在他的电脑上运行,没有出现延迟情况。
所以有了猜测1:电脑问题,我用的是 mac mini(这破电脑经常出问题) 他用的是mac pro。但是可以排除xcode和模拟器的锅,因为我俩用的模拟器和xcode都一样
尝试方法2:我自己写了个简单的demo(一个页面+UITableView),同样做了点击cell弹出AlertController。奇怪的是,并没有没有延迟。
于是有了猜想2:可能是我项目中用了第三方的侧滑菜单(类似于滴滴打车)。查了网上了很多信息,大部分人用到第三方侧滑 都会出现这个问题。
于是乎,基本确定是第三方侧滑导致的延迟。。但还是没有办法解决(恕我才疏学浅)。
后来尝试在didSelectRowAtIndexPath的方法里写了一个方法[tableView deselectRowAtIndexPath:indexPath animated:NO];问题就得到解决了(如下图:)
注意:animated 必须设为NO(我也不造为什么,反正设为YES 没效果)
虽然不延迟了,但是我感觉问题没有真正得到解决,因为还有另外一个问题:当我点击cell时(无论AlertController延迟与否),控制台都会输出
pushViewController:animated: called on <UINavigationController 0x7ff999875e00> while an existing transition or presentation is occurring; the navigation stack will not be updated.
如下图:
我感觉这才是真正的问题所在,但是我现在没办法解决!! 先写下这篇博客,以后有办法了再回来更。。或者哪位大神有解决办法请告知与我,谢谢!! QQ:1296460793 邮箱1296460793@qq.com (请备注,谢谢)