通常の UIViewController 内に UICollectionView があります。
コレクションビュー内で、ストーリーボードのコレクションビューセルの再利用可能な UI を設計しました。
collectionviewcell の内部には、セル indexpath.row と 5 つの UIButtons を表示するラベルがあり、選択すると色が変わり、選択されたままになります。
コレクションビューを設定して、30 を超えるセルが要求された場合にコレクションビューが水平にページングされ、コレクションビューのレイアウトも水平になるようにしました。
アプリケーションは問題なく動作し、適切にスクロールし、セルを正しくレイアウトします。
私が抱えている問題は、たとえばコレクションビューセルのセル 1 のボタン A (100 個のセルをレイアウトすることを想定) を選択し、2 ページ (60 個以上のセル) をページ 3 にページすると、セル番号 75 のボタン A が選択されます。 . さらに、最後 (100 セル) までスクロールしてページ 3に戻ると、セル番号 75 のボタン A が選択されたままになりますが、セル番号 64 のボタン A が選択されます。
コードの一部を次に示します。 cell.m - ユーザーからのアクションを制御します。
- (IBAction)bubbleButtons:(id)sender {
for(UIButton *bubbleCell in self.bubbleButtons) {
if (bubbleCell.touchInside && !bubbleCell.selected) {
bubbleCell.selected = YES;
} else if (bubbleCell.touchInside && bubbleCell.selected) {
bubbleCell.selected = NO;
}
}
}
MainViewContoller.m - ストーリーボードで作成した UICollectionViewCell からセルを設定します
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath {
Cell *cell1;
cell1 =[collectionView dequeueReusableCellWithReuseIdentifier:zCellID
forIndexPath:indexPath];
cell1.numMainLabel.text = [NSString stringWithFormat:@"%d |",indexPath.row+1];
return cell1;
何が間違っているのか、何がこのバグを引き起こしているのかよくわかりません。ビューの新しい部分が表示されたときにビューがリロードされることに関係していると思いますが、それは単なる推測です。助けていただければ幸いです。
- ザック