NSURLRequest не будет срабатывать при прокрутке UIScrollView
У меня есть проблема в том, что я пытаюсь загрузить фоновый файл, когда пользователь перемещается по UIScrollView... Проблема в том, что я использую NSURLRequest, поэтому могу загружать в фоновом режиме, но даже тогда он отказывается на самом деле загружать, пока UIScrollView не остановит прокрутку.: (
Что я могу с этим поделать?
Спасибо!
Ответы
Ответ 1
NSURLRequest
управляет только запросом, а не фактическим подключением.
Прикоснитесь к событиям, таким как прокрутка, поместите цикл выполнения в NSEventTrackingRunLoopMode
. По умолчанию, NSURLConnection
назначается только в NSDefaultRunLoopMode
. Поэтому, когда в NSEventTrackingRunLoopMode
, NSDefaultRunLoopMode
заблокирован.
Хорошей новостью является то, что вы можете планировать дополнительные режимы для NSURLConnection
, например NSRunLoopCommonModes
.
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[connection start];
Ответ 2
Я понял, насколько сложно, если вы сразу вызовите start: YES или опустите этот параметр, вторая строка абсолютно бесполезна. Поэтому обязательно следуйте точной схеме, предоставляемой @tidwall.
Здесь также быстрый пример:
self.connection = NSURLConnection(request: self.request, delegate: self, startImmediately:false)
self.connection?.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
self.connection?.start()