iphone – 如何阻止reloadRowsAtIndexPaths阻止用户输入?

我已经为分页的REST服务实现了一个客户端,我用空条目填充整个表,然后在用户开始滚动表时使用分页在后台加载它们.

除了一些细节之外,这似乎工作得非常好:我在主UI线程中调用reloadRowsAtIndexPaths:因为UIKit需要这样做,我觉得动画有时会让我失去输入触摸.

也就是说,用户开始滚动列表并开始加载项目.有时重新加载动画在用户再次触摸屏幕的同时发生,并且不能识别该触摸.然后滚动不会继续并停止.它不会一直发生,我想这是一个不常见的用户案例(用户需要在向下滚动之前读取每一行结果),但它让我感到厌烦.

我正在使用块进行大部分动画,并且标志UIViewAnimationOptionAllowUserInteraction非常有用,因此是否有reloadRowsAtIndexPaths的块版本,其中重新加载动画不会阻止用户与滚动的交互?

最佳答案 我认为您寻求的解决方案是在线程中加载数据(如您所述),并且只有在收到数据并准备显示后才调用reloadRowsAtIndexPaths:您还应该重新显示未设置动画的数据.

我不认为你可以采取任何措施来解决当前计划中错过的问题.我的建议是“做iOS想要的”,而不是“尝试哄骗iOS来做你想做的事”.是的,可能不是你想听到的答案,但我认为这只是它的工作方式.

(顺便说一句,你总是可以使用bugreporter.apple.com来提出增强请求!:)

点赞