2016-09-28 4 views
0

これに答える質問をたくさんチェックしましたが、私は特別なケースがあると思います。UICollectionViewのセル再利用を削除します

私は友人と一緒にアプリを開発していて、Appleに就職したと言います。私はデザイナーであり、彼は開発者でした。彼は私にObjective-CとSwiftを教えていた。私は彼と私が働いて、それで新しい何かを試してアプリを更新しています。おそらく私の頭の上に方法がありますが、私はそれに取り組み、チュートリアル@ Udemyをやって、私が知っている他の開発者と質問をして、多くを学んでいます。

私はアプリがUICollectionViewを使って "アイテム"のコレクションを表示している状況があります。 「アイテム」をタップすると、そのアイテムの詳細ビューにアニメートされ、詳細情報が表示されます。セルの再利用は、ディテールレベルでアイテム間をスワイプする方法を構築するまで問題にはなりませんでした。アイテムの詳細をタップして詳細をスワイプすることができます。

これは問題です。ユーザーが詳細ビューに移動してそのアイテムにスワイプしようとすると、アイテムのセルが画面に表示されないそれは表示されません。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
KNIIssueCollectionViewCell *cell = (KNIIssueCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:kItemCellReuseID forIndexPath:indexPath]; 

KNIRecommendedItem *item = self.issue.items[indexPath.item]; 
[cell configureWithItem:item]; 

KNIRecommendedItemDetailViewController *itemDetailVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:NSStringFromClass([KNIRecommendedItemDetailViewController class])]; 
itemDetailVC.item = item; 
itemDetailVC.transitioningDelegate = self; 
itemDetailVC.itemImage = cell.image; 
[self.pages addObject:itemDetailVC]; 
return cell; 

}

私はdequeueReusableCellWithReuseIdentifierを理解するには、削除する必要がありますが、私が試したすべて再書き込みエラーが生じました。

+0

デキューを削除した後に記述したコード – prabodhprakash

+0

セルの再利用は問題ではありません。セルの再利用を無効にすると問題が解決されると思うときは、おそらくあなたの問題を理解していないでしょう。セルとは、モデル内の一部のデータのビューです。詳細ビューに表示するアイテムがコレクションビューに現在表示されていない場合でも、アイテムはデータモデルに存在し、取得する必要があります。あなたは "特殊なケース"を持っていません。 – Paulw11

+0

ありがとう@ Paulw11 - 私はそれについても持っている考えのいくつかをクリアする。しかし、あなたは私の頭の中にあるよりも簡潔に言いました。たぶん私は間違った場所で問題に取り組んでいるかもしれません... – UEXUI

答えて

0
- (UICollectionViewCell *)collectionView:(UICollectionView 
*)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    KNIIssueCollectionViewCell *cell = //create new cell instance here 

    KNIRecommendedItem *item = self.issue.items[indexPath.item]; 
    [cell configureWithItem:item]; 

    // ...other part of code... // 
    return cell; 
} 
関連する問題