CollectionViewのCellをタップした時に、TwiterアプリのカメラロールのようにsubViewをCellに追加する、といった処理を実装しようとしています。
そう思い、このような処理を書いてみました。

- (CameraRollCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    CameraRollCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellID forIndexPath:indexPath];
    return cell;
}

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
    CameraRollCell *cell = [collectionView cellForItemAtIndexPath:indexPath];
    [cell selectPhoto];
}

UICollectionViewCell`を継承したカスタムクラスを用意し、タップされた時にそのCellを取得。取得後、カスタムセルが持つsubViewを追加するメソッドを呼び出しています。

が、恐らくcellForItemAtIndexPath:ではカスタムクラスのCellでの取得が出来ないので弾かれてしまいます…。

そこで質問なのですが、

  1. cellForItemAtIndexPath:でカスタムクラスのCellを取得することは出来ますか?
  2. もっと効率的な実装方法はありますか?

ご回答、よろしくお願い致します。

補足
- StoryBoardは使っておりません。コードのみでの実装です。