我正在使用UIGestureRecognizer
来检测点击或滑动,并在我的应用中更改页面。
经过一些使用(可能是50多页页面加载)后,应用程序开始对手势响应明显变慢。您可以点击并等待一整秒钟,以便识别手势。
我已经检查了我的代码,并不是页面转动速度变慢,因为它仍然可以通过其他方式(蓝牙键盘)工作。按钮和菜单的响应也不会减慢。
有谁知道可能导致这种情况的原因?它最终导致应用程序无法使用。
答案 0 :(得分:3)
可能有很多事情。我要做的第一件事是对应用程序运行工具并寻找泄漏。像这样的减速可能是由创建和未释放的对象引起的。另请注意,泄漏仪器不会拾取所有物品。我经常通过查看分配并检查正确数量的实例是否存活来获取泄漏的对象。
答案 1 :(得分:3)
问题解决了!事实证明,每次加载页面时我都会添加新的手势识别器,而不会删除之前的页面。
答案 2 :(得分:1)
我遇到这个缓慢的segue问题,只有在为segue滑动时。我来到这个帖子,看到来自@colincameron的帖子说他正在堆叠每个负载的手势识别器。
所以我去找了this SO线程,其中@robmayoff展示了如何从视图中删除所有手势识别器。您可以将此删除代码添加到prepareForSegue,viewDidDisappear等
夫特
subview.gestureRecognizers?.forEach(subview.removeGestureRecognizer)
那段代码解决了我的慢速问题。