/ / UicollectionViewCell sulla cella seleziona modifica Colore bordo: iOS, Object-C, uicollectionview

UicollectionViewCell sulla cella seleziona cambia Colore bordo - ios, obiettivo-c, vista raccolta

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