2013-03-25 4 views
1

Я только начинаю реализовывать мультиселективный UICollectionView. Будет ли ниже рассматриваться как «безопасный» код (поскольку я предполагаю, что по какой-то причине он называется BackgroundView вместо AccessoryView или такой)? У меня была идея сэкономить несколько усилий, я намерен отслеживать выбранные элементы в пути индекса для дальнейшего использования через массив.UICollectionView cell: безопасно ли вывести cell.selectedBackgroundView на передний план?

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
//.... 

cell.selectedBackgroundView = someView_With_A_Checkmark_Image; 
[cell bringSubviewToFront:cell.selectedBackgroundView]; 

//... 
return cell; 

} 

ответ

2

Безопасно ли? Конечно, это не вызовет ошибок. Если ваш backgroundView находится над contentView ячейки, то каково значение contentView ??.

структура вид Коллекция клеток
enter image description here

При выборе элемента в представлении коллекции, CollectionView будет переключать BackgroundView и Selected background view. Итак, что вы можете сделать, это дать действительные представления в качестве фонового представления и выбранного фонового представления при настройке вашей пользовательской ячейки или изменить любые свойства ячейки в didSelectItem, чтобы отличить выбор. Так лучше.

Тогда еще один не нужно отслеживать выбор с помощью отдельного массива. [self.collectionView indexPathsForSelectedItems] даст вам выбранный путь предметов в любой момент времени

+0

Звучит неплохо. Это имеет смысл для меня в конкретной ситуации, я предполагаю, вместо добавления в контентный вид, было просто любопытно, поскольку это казалось странным. – ceekay