コレクション ビューを使用して「カード」を表示しています。ユーザーがこれらのカードの 1 つをクリックすると、(didSelectItemAtIndexPath で呼び出される関数を介して) フリップ アニメーションでビューが変わります (反対側の「側」に)。ユーザーがこれらのカードの別の 1 つに触れた場合、別のカードをクリックすると、古いカードが古いビューに戻り、新しいカードが新しいビューにフリップします。または、元のカードをもう一度クリックして裏返すこともできます。
問題
これはうまく機能しますが、スクロール ビューでカードをスクロールすると、他のカードが反転しているように見えます。たとえば、コレクション ビュー (インデックス: 0) の最初のカードをめくります。これはうまく転がります。下にスクロールすると、インデックス 9 のセルが反転して表示されます。
私が試したこと
私は周りを見回しましたが、UICollectionView とスクロールに関連する問題がたくさんありますが、何が同じで何がそうでないのかわかりません。また、NSLog を使用して、ランダムに反転されたビュー カードが選択され、プログラムを介して反転されたかどうかを判断しました。彼らはただそうであるように見えます。
私はこれでアイデアに本当にこだわっています。誰かアイデアはありますか?セルの作成方法が原因ですか?私のviewDidLoadで私は使用しています:(cellImageはセルのカスタムクラスです)
[self.collectionView registerClass:[cellImage class] forCellWithReuseIdentifier:@"MY_CELL"];
そして私のcellForItemAtIndexPathで:
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath; {
cellImage *cell = [cv dequeueReusableCellWithReuseIdentifier:@"MY_CELL" forIndexPath:indexPath];
cell.imageView.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.item]];
[cell.label addSubview:cell.imageView];
cell.label.backgroundColor = [UIColor whiteColor];
cell.label.layer.borderColor = [UIColor grayColor].CGColor;
cell.label.layer.borderWidth = 1.0f;
return cell;
}
誰にもアイデアはありますか?さらにコードが必要な場合は、私に声をかけてください、ありがとう!