0

我想單擊collectionviewCell時顯示activityIndi​​cator動畫。但它不起作用,我無法找出問題所在。 ActivityIndi​​cator在Custom 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

是不是在mainqueue工作你的CollectionView?如果是,那麼你如何管理你的代碼?在這裏,不需要切換到主隊列,因爲它已經在主隊列中運行。不要額外撥打不需要的電話,但它應該工作。我認爲還有其他一些問題。 –

回答

3

問題是這一行

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

在,didselect方法,你正在服用可重複使用的電池,它永遠不會工作,這是罰款cellforItemAtIndexPath方法,但它是完全wrongFor didSelectItemAtIndexPath方法。

更改上述行來此

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

你完全正確!謝謝! –

相關問題