当UIScrollView滚动时,NSURLRequest不会触发

时间:2010-11-03 19:13:45

标签: objective-c ipad ios uiscrollview nsurlrequest

我有一个问题,我试图在用户移动UIScrollView时后台加载声音文件...问题是我使用NSURLRequest所以我可以在后台加载,但即使这样它也拒绝实际加载,直到UIScrollView停止滚动。 :(

我能做些什么吗?

谢谢!

2 个答案:

答案 0 :(得分:27)

NSURLRequest仅管理请求,而不是实际连接。

触摸滚动等事件会将运行循环放入NSEventTrackingRunLoopMode。默认情况下,NSURLConnection计划在<{1}}中执行 。因此,在NSDefaultRunLoopMode中,NSEventTrackingRunLoopMode被阻止。

好消息是,您可以为NSDefaultRunLoopMode安排其他模式,例如NSURLConnection

NSRunLoopCommonModes

答案 1 :(得分:1)

我已经想出了如果你调用startImmediately很难的方法:YES或者省略这个参数,第二行完全没用。所以一定要遵循@tidwall提供的确切模式。

这也是一个很快的例子:

self.connection = NSURLConnection(request: self.request, delegate: self, startImmediately:false)
self.connection?.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
self.connection?.start()