滚动退出iPhone上的CFRunLoopRun

时间:2011-02-08 15:44:23

标签: iphone multithreading

我已经创建了一个UIView,并且我通过使用CFRunLoopRun将其显示为模态对话框。

一切正常,但当用户在UIView中进行任何类型的滚动时,它会退出CFRunLoopRun。

我已经读过这个问题,但没有找到解决方案。

有什么想法吗?

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
[customdialog show]; // my method to show the dialog
CFRunLoopRun(); //exits CFRunLoopRun when scrolling on customdialog (UIView)
[pool release]; 

1 个答案:

答案 0 :(得分:2)

滚动导致runloop模式发生变化,这可能导致CFRunLoopRun()终止。所以你需要反复重新运行CFRunLoopRun(),直到你设置一些标志停止。

但是很少有任何理由这样做。您可以创建UIAlertView的子类,或者您只需将对话框设置为全屏,这样就可以防止触摸另一个视图(这就是我总是这样做的)。只需创建一个透明的全屏视图,并将对话框放入其中,并将其添加为当前视图的子视图。然后就没有关于runloop的特殊描述。