プログラムの実行をどのように停止しますか? スリープ機能はそれをしませんか?もしそうなら、このコードの何が問題なのですか:
AsyncImageView *tmpImage = [imagesArray objectAtIndex:index];
int waitCounter = 0;
while (waitCounter < 10 && !tmpImage.imageIsLoaded) {
waitCounter++;
sleep(0.5);
}
NSLog(@"%i",waitCounter);
if (tmpImage.imageIsLoaded) {
return [tmpImage image];
} else {
return [UIImage imageNamed:@"img_noimg.png"];
}
AsyncImageView クラスは、URL から画像を読み込み、imageIsLoaded プロパティを true に設定します。これは通常、非常に高速 (1 秒未満) に発生しますが、狂ったように画像をスクロールすると、読み込む時間がありません (10 画像先に読み込まれます)。
これが起こらないように while を追加しましたが、ログには、スリープ時間がない (インターフェイスがフリーズしていない) 間に、waitCounter が 10 になる複数のケースが表示されます。