2011-02-08 4 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

スクロールは変更する実行ループモードを引き起こし、これはおそらく終了するCFRunLoopRun()を引き起こしています。したがって、いくつかのフラグを停止するまでは、CFRunLoopRun()を繰り返し再実行する必要があります。

しかし、これを行う理由はほとんどありません。 UIAlertViewをサブクラス化することもできますし、単にダイアログをフルスクリーンにして、他のビューに触れることを防ぐこともできます(これはいつも私がこれを行う方法です)。透明でフルスクリーンのビューを作成し、その中にダイアログを配置し、それを現在のビューのサブビューとして追加するだけです。その後、ルンループには特別なフットワークはありません。

関連する問題