Двойной размер UICollectionViewCell при выборе

В настоящее время у меня есть UICollectionView, который представляет собой 2 столбца UICollectionViewCells, и мне интересно, определил ли кто-нибудь, как сделать так, чтобы ячейка расширялась до полной ширины экрана и заставляла другие двигаться вниз. Я попытался возиться с размером кадра ячейки и строками, но, похоже, ничего не работает должным образом. Любые идеи?


person Paulius Dragunas    schedule 30.07.2013    source источник


Ответы (2)


Что-то вроде этого работает для вас:

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
    self.path = indexPath;
    [self.collectionView reloadData];
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    if ([indexPath isEqual:self.path]) {
        return CGSizeMake(320, 150);
    }else{
        return CGSizeMake(150, 150);
    }
}
person rdelmar    schedule 30.07.2013
comment
Почти, за исключением случаев, когда выбран элемент справа, элемент слева находится в центре, а не все смещается, чтобы освободить для него место. Кроме того, есть ли способ оживить это? - person Paulius Dragunas; 30.07.2013
comment
@user1933131 user1933131, куда вы хотите, чтобы левый переходил, когда вы выбираете правильный? Вы хотите, чтобы он оставался слева и имел отверстие справа? Я не знаю, есть ли способ оживить это. - person rdelmar; 30.07.2013

Вам нужны два UICollectionViewLayouts. Измените свой itemSize на второй UICollectionViewLayout. Затем вы можете вызвать setCollectionViewLayout:animated, который анимирует изменение между двумя макетами представления коллекции.

person Patrick Tescher    schedule 30.07.2013