2011-07-28 12 views
4

私は空のエントリで、テーブル全体を移入し、ユーザーがテーブルのスクロールを開始したときにページネーションを使用してバックグラウンドでそれらをロードするページ分割RESTサービスのクライアントを実装しています。は、どのように私は、ユーザー入力をブロックするようにreloadRowsAtIndexPathsを防ぐのですか?

これは少し詳細を除いて非常にうまく動作するようです:(UIKitが要求するので)私は、メインUIスレッドでreloadRowsAtIndexPaths:を呼び出しています、と私はアニメーションが時々私は入力タッチを失うことになると感じ

これは、ユーザーがリストをスクロールを開始し、アイテムをロードするために開始し、あります。時にはリロードアニメーションは、ユーザーがもう一度画面をタッチすると同時に発生し、このタッチが認識されません。その後、スクロールは継続せず停止します。それはすべての時間を発生しません、と私はそれが(ユーザーがスクロールダウンする前に、結果の各行を読み取ることが期待されている)頻度の低いユーザーの場合だと思いますが、それはありません最後に私を悩まします。

ほとんどのアニメーションはブロックで行いますが、フラグUIViewAnimationOptionAllowUserInteractionは本当に役に立ちます。reloadRowsAtIndexPathsのブロック版があり、リロードアニメーションはスクロールとのユーザーのやりとりをブロックしませんか?

+0

あなたがアイテムを再ロードするために使用しているコードを表示することができますか?別のスレッドでREST呼び出しを行っていますか?読み込みを開始していることをユーザーにどのように示していますか? –

答えて

2

あなたが探している解決策は、スレッドでデータをバックグラウンドでロードすることです(説明したとおり)。データが受信され、表示する準備ができたら、reloadRowsAtIndexPaths:を呼び出します。おそらくアニメーション化されていないデータを再表示する必要があります。

あなたの現在の体系に欠けていることを回避するためにできることはありません。私の提案ではなく、「iOS版が欲しいものを行う」ことである「あなたがやりたいのiOSを丸めるようにしてください。」はい、おそらくあなたが聞きたい答えではありませんが、それはそれがうまくいく方法だと思います。

(ところで、あなたは常に改善要求を行うbugreporter.apple.comを使用することができます!:)

+0

これまではバグ記者を使って壁に話すより悪かったですが、あなたのポストを読んでみると、今私が試してみる何かが思い出されました... –

+0

ナー、働いていません。 bugreporterを使い、ベストを願ってみましょう。 –

関連する問題