Как правильно настроить текущий поток NSRunLoop для работы в определенном режиме, пока я не решу его остановить?

Я хочу имитировать поведение UIScrollView, когда режим RunLoop текущего потока изменяется на UITrackingRunLoopMode, когда вы перетаскиваете scrollView, и обратно на NSDefaultRunLoopMode, когда вы прекращаете перетаскивание.

Однако я хочу сделать это со своим собственным классом, перетаскивая представления... Прямо сейчас я использую этот код.

while (_draggingView && [[NSRunLoop currentRunLoop] runMode:UITrackingRunLoopMode beforeDate:[NSDate distantFuture]]);

Когда я прекращаю перетаскивание, _draggedView изменяется на nil, поэтому я прекращаю зацикливаться в этом режиме. Есть ли более элегантный/лучший способ сделать это?

Как это делает UIScrollView? Источники ввода?

Спасибо

10
задан LocoMike 23 May 2012 в 20:40
поделиться