2015-03-26 2 views
1

У меня есть коллекцияView, и каждая ячейка содержит изображение. Теперь я хочу выделить изображение, которое будет выделено, как значок приложения iPhone, когда вы его выберете.Как выделить изображение в ячейке UICollectionView?

Я попробовал этот код, но он не работает, он просто выделил фон.

- (BOOL)collectionView:(UICollectionView *)collectionView shouldHighlightItemAtIndexPath:(NSIndexPath *)indexPath 
    { Cell* cell = (Cell*)[collectionView cellForItemAtIndexPath:indexPath]; 
    cell.img.tintColor = [UIColor colorWithWhite:0 alpha:0.5 ]; 
    return YES; 
} 
+0

вместо использования shouldHighlightItemAtIndexPath didSelectRowAtIndexPath – vishnu

+0

Я надеюсь, что это поможет вам http://stackoverflow.com/questions/190908/how-can-i-disable-the-uitableview-selection-highlighting?rq= 1 –

ответ

1

Лучшим подходом является использование didSelect и didDeselect делегатов. Когда пользователь выбирает ячейку, возьмите изображение в ячейке collectionView и измените любое свойство по своему усмотрению.

Пример кода.

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { 

UICollectionViewCell *selectedCell = [collectionView cellForItemAtIndexPath:indexPath]; 

UIImageView *imageView = (UIImageView *)[selectedCell viewWithTag:101]; 
[imageView setImage:[UIImage imageNamed:@"whatever-image-you-want"]]; 

} 

Если пользователь выбирает другую ячейку, другими словами deSelects предыдущая ячейка, вы можете изменить ячейку, используя. didDeselectItemAtIndexPath делегат

- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath { 


UICollectionViewCell *deSelectedCell = [collectionView cellForItemAtIndexPath:indexPath]; 

UIImageView *imageView = (UIImageView *)[deSelectedCell viewWithTag:101]; 
imageView.image = nil; 

} 
Смежные вопросы