0

collectionviewCellをクリックすると、activityIndi​​catorアニメーションが表示されます。しかし、それは動作しません、私は問題を見つけることができませんでした。 ActivityIndi​​catorは、カスタムcollectionViewCellクラスで定義されています。ActivityIndi​​catorがCollectionViewCellに表示されない

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

    VMSListCell *cell = [_myCollectionView dequeueReusableCellWithReuseIdentifier:@"myCell" forIndexPath:indexPath]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
      NSLog(@"Inside of main queue with activityindicator"); 
      cell.activityIndicator.hidden = false; 
      [cell.activityIndicator startAnimating]; 
     }); 
    NSLog(@"After main queue"); 
} 

私はカスタムセルを使用しています。ログには、「メインキューの内部でアクティビティインジケータが表示されますが、「メインキューの後」」は表示されません。そして、活動指標が回転していません。

私はhttpリクエストを行いますので、collectionviewCellをクリックした後、メインのキューの中にアクティビティアニメーションメソッドを配置します。私もメインキューなしで試してみましたが、どちらもうまくいきません。

+0

にライン上の

変更あなたのcollectionviewがmainqueueで動作していない?yesの場合、その後、あなたのコードを管理する方法?。ここでは、すでにメインキューで実行されているため、メインキューに切り替える必要はありません。必要ではない余分なコールを作ってはいけません。それでも動作するはずです。他にも問題があるはずだと思います。 –

答えて

3

問題は、このライン

VMSListCell *cell = [_myCollectionView dequeueReusableCellWithReuseIdentifier:@"myCell" forIndexPath:indexPath]; 

で、didselect方法であり、あなたは再利用可能なセルを取っている、それが動作することはありません、それはcellforItemAtIndexPathメソッドの罰金ですが、それは完全にwrongFor didSelectItemAtIndexPath方法です。この

VMSListCell *cell = [_myCollectionView cellForItemAtIndexPath:indexPath]; 
+0

あなたは完全に正しいです!ありがとうございました! –

関連する問題