2011-02-08 41 views
0

我創建了一個UIView,並使用CFRunLoopRun將其顯示爲模態對話框。滾動在iPhone上退出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]; 

回答

2

滾動導致runloop模式改變,這可能是導致CFRunLoopRun()終止。所以你需要重複運行CFRunLoopRun(),直到你設置了一些標誌停止。

但是很少有任何理由這樣做。你可以子類UIAlertView,或者你可以簡單地使你的對話框全屏,以防止觸及另一個視圖(這是我總是這樣做)。只需創建一個透明的全屏視圖,並將對話框放入其中,並將其添加爲當前視圖的子視圖。然後,runloop沒有特別的futzing。