UICollectionViewで選択した項目の色を変更したい、選択されていない項目もデフォルトの色にする必要があります。しかし時には、2つ以上の項目が選択されていることもあります。iOS UICollectionView選択した項目の色を変更します。
私のコードは次のとおりです。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell * cell;
StanderdScoreCardPlayerCollectionViewCell * standardScoreCardPlayerCollectionViewCell = [collectionView dequeueReusableCellWithReuseIdentifier:@"StanderdScoreCardPlayerCollectionViewCell" forIndexPath:indexPath];
if(standardScoreCardPlayerCollectionViewCell.selected || selectedPlayerIndex == indexPath.row){
standardScoreCardPlayerCollectionViewCell.outerView.backgroundColor = NAV_BAR_BARTINT_COLOR_GREEN;
}
else{
standardScoreCardPlayerCollectionViewCell.outerView.backgroundColor = UIColorFromRGB(0xC9C9C9);
}
cell = standardScoreCardPlayerCollectionViewCell;
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell * cell = [collectionView cellForItemAtIndexPath:indexPath];
StanderdScoreCardPlayerCollectionViewCell * cell = [collectionView cellForItemAtIndexPath:indexPath];
cell.outerView.backgroundColor = NAV_BAR_BARTINT_COLOR_GREEN;
selectedPlayerIndex = indexPath.row;
[self displayDataWithPlayer:selectedPlayerIndex andHole:selectedHoleIndex];
}
- (void) collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath{
StanderdScoreCardPlayerCollectionViewCell * cell = [collectionView cellForItemAtIndexPath:indexPath];
cell.outerView.backgroundColor = UIColorFromRGB(0xC9C9C9);
}
selectedPlayerIndex
常に選択プレーヤーを指し、それはのviewDidLoadで1を宣言しています。どのように私はこれを解決するのですか?
アウトADDプット画面を削除
didDeselectItemAtIndexPath
を実装する必要はありませんようにこのと
didSelectItemAtIndexPath
などのcellForItemAtIndexPath
–私はあなたがuncheckチェック項目を管理するようにこれを管理したいと思う...右?? –
配列や辞書の背景色の状態を管理し、 'cellForItemAtIndexPath'でそれを使う必要があります。 –