Ho una mia abitudine UICollectionVIewCell
. Quando l'utente seleziona una cella, voglio che il bordo della cella sia di colore rosso. e quando l'utente lo deseleziona voglio deselezionare il bordo della cella. Com'è possibile ?
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
CustomeCollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
cell.backgroundColor=[UIColor redColor];
}
-(void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath{
CustomeCollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
cell.backgroundColor=[UIColor clearColor];
}
risposte:
2 per risposta № 1- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
NSString *img =[[images objectAtIndex:indexPath.row]valueForKey:@"imageName"];
cell.backgroundView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:img]];
cell.layer.borderWidth=10;
cell.layer.borderColor=[UIColor greenColor].CGColor;
return cell;
}
Questo è un codice funzionante nella mia app. Assicurati che ci sia la larghezza del bordo se stai dando borderello.
1 per risposta № 2
Utilizzare metodi integrati di UICollectionViewCell
classe. È necessario eseguire l'override setHighlighted:
metodo.
- (void)setHightlighted:(BOOL)highlighted {
[super ....];
self.something = highlighted ? red : blue;
}
0 per risposta № 3
Puoi provare:
cell.layer.borderColor
per cambiare il bordo del colore