我已经创建了一个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];
答案 0 :(得分:2)
滚动导致runloop模式发生变化,这可能导致CFRunLoopRun()
终止。所以你需要反复重新运行CFRunLoopRun()
,直到你设置一些标志停止。
但是很少有任何理由这样做。您可以创建UIAlertView
的子类,或者您只需将对话框设置为全屏,这样就可以防止触摸另一个视图(这就是我总是这样做的)。只需创建一个透明的全屏视图,并将对话框放入其中,并将其添加为当前视图的子视图。然后就没有关于runloop的特殊描述。