2013-10-09 10 views
0

Когда пользователь выбирает ячейку CollectionView, анимировать этот кадр ячейки расти и переставить так, что она сидит имеет такой размер/расположение:Преобразование происхождения UICollectionViewCell в кадр ViewController в

CGRectMake(114, 148, 540, 620) 

Это хорошо работает, если я не прокручивались до других ячеек в коллекцииView. Когда я пробую это в нижней ячейке, он все еще оживляет, но клетка идет вверх, так что координата y может быть в 148 для коллекцииView.

Я пробовал всевозможные варианты convertRect и convertPoint, но я не могу концептуализировать правильное решение.

Что нужно сделать, чтобы преобразовать значение y выбранной ячейки, чтобы перейти к эквиваленту 148 в системе координат супервизора?

EDIT: Для уменьшения путаницы

я нажимаю на ячейки в нижней части (то есть я прокрутки вниз несколько строк) моего CollectionView и это происхождение:

(x=394.5, y=4114) 

В х здесь отлично , но у меня проблема с y. Я хочу анимировать эту ячейку, которую я только что выбрал так, чтобы она выглядела так, как будто координата y находится на расстоянии 148 от внешнего вида. Точно так же, как диспетчер вида модального вида. Но установление этого источника в 148 приводит к тому, что ячейка будет летать до вершины коллекцииView, потому что она полностью опущена на 4114. Как я могу получить правильное значение y, которое выглядит 148 для пользователя, но на самом деле это будет что-то ближе к исходному происхождению клетки?

EDIT 2: PIC

enter image description here

+0

Где вы устанавливаете ячейку фреймов? –

+0

Внутри 'didSelectItemAtIndexPath' – Lizza

+0

и didSelectItemAtIndexPath получает вызов каждый раз, когда вы прокручиваете? –

ответ

2

Если я правильно понял, что вы хотите сделать, то решение просто: «у» позиция вашей ячейки должна быть self.collectionView.contentOffset.y + 148.

CGRectMake(114, self.collectionView.contentOffset.y + 148, 540, 620); 

Это будет работать с любым заданным значением прокрутки.

Надеюсь, это поможет!

+0

DOH! Это сделал трюк. Большое спасибо. – Lizza

+0

Ваш прием. Всегда рад помочь! – LuisCien

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