NSURLRequest won#39;t fire while UIScrollView is scrolling(NSURLRequest 在 UIScrollView 滚动时不会触发)
问题描述
我有一个问题,我试图在用户在 UIScrollView 周围移动时在后台加载声音文件...问题是我正在使用 NSURLRequest 所以我可以在后台加载,但即使这样它也拒绝实际加载直到 UIScrollView 停止滚动.:(
I have a problem in that I am trying to background load a sound file while the user moves around a UIScrollView... The problem is that I am using NSURLRequest so I can load in the background, but even then it refuses to actually load until the UIScrollView has stopped scrolling. :(
对此我有什么办法吗?
谢谢!
推荐答案
NSURLRequest 只管理请求,不管理实际连接.
The NSURLRequest only manages the request, not the actual connection.
滚动等触摸事件会将运行循环置于NSEventTrackingRunLoopMode.默认情况下,NSURLConnection 被调度为仅 在 NSDefaultRunLoopMode 中执行.所以在 NSEventTrackingRunLoopMode 中,NSDefaultRunLoopMode 被阻塞了.
Touch events such as scrolling will place the run loop into NSEventTrackingRunLoopMode. By default, an NSURLConnection is scheduled to only execute in NSDefaultRunLoopMode. So while in NSEventTrackingRunLoopMode, NSDefaultRunLoopMode is blocked.
好消息是您可以为 NSURLConnection 安排其他模式,例如 NSRunLoopCommonModes.
Good news is that you can schedule additional modes for an NSURLConnection, such as NSRunLoopCommonModes.
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[connection start];
这篇关于NSURLRequest 在 UIScrollView 滚动时不会触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:NSURLRequest 在 UIScrollView 滚动时不会触发
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
