2016-06-24 12 views
0

UIViewであるサブクラスにUICollectionViewが埋め込まれています。
UIViewはNIBからロードされ、IBOutletがあるUICollectionViewを含んでいます。UICollectionView didSelectItemAtIndexPathには時間がかかります(2〜3秒)

UICollectionViewデリゲートとデータソースは、ビューのawakeFromNibのUIViewに設定されています。

ユーザーがUICollectionViewのセルを押すと、次のような方法は、iPhone 4Sで呼び出さ取得するために2-3秒かかる:速い電話で

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 

を、それはより速く、より応答性のだ(ただし、それはまだそうであるように応答していないと言うことができます)。それは4sでも非常に速くなければなりません。 4秒は9.3(私は20-40 MSの時間、より長くはないと思います)を実行しています。

現在、UXの観点からは非常に鈍いです。

おそらく、didSelectメソッドが呼吸を許可されるためにUIスレッドがロードされすぎていますか? (注:他のUIアクションは高速です)。

+1

あなたは 'didSelect'で正確に何をしていますか? – Sulthan

+0

現在:目的には何もありません。私はNSLog(@ "TEST")をやっています。 – Alex

+2

タッチが他のジェスチャ認識機能によって遅れる可能性があります。 – Sulthan

答えて

2

問題は次のとおりです: 私のセルクラスではUIImageViewがあり、サイズが1300を超える1300という大きさの画像を設定してテンプレート(2枚の画像がロードされている)を作成してから、それに色。私はcellForRowでこの操作を行っていました...そして、そのコードがdidSelectで呼び出されることはありませんが、画像そのものの大きさとスケーリングによって、セルを選択するときdidSelectが遅くなっていました。

私はこれを128x128イメージに置き換えました。同じコードが今すぐ速く動作します。

+0

私は1200 x 1200を持って、128 x 128に行きました、あなたは男性Alexです。 UICollectionViewは高速です。 – fonz101

関連する問題