Увеличьте двумерный UICollectionView

Я создалUICollectionView который горизонтально и вертикально. У него разныеUICollectionViewCells, Все выложено правильно. Сейчас я пытаюсь сделать этоzoomable,UICollectionViewCells также правильно изменены. Каждый разUIPinchGesture Случаи, я установилitemSize внутриUICollectionViewLayout зависеть отscale.

TestLayout *layout =  (TestLayout *) self.collectionViewLayout;
CGSize newItemSize = CGSizeMake(_sizeItem.width * gesture.scale, 
                                _sizeItem.height * gesture.scale);
[layout setItemSize:newItemSize];

Здесь вы можете увидеть методsetItemSize Я звоню внутри моего CustomLayout.

- (void)setItemSize:(CGSize)itemSize
{
    if (CGSizeEqualToSize(self.itemSize, itemSize)) return;

    _itemSize = itemSize;

//    [self prepareLayout];
    [self invalidateLayout];
}

Моя проблема - знать все предметыresize справа внизу, и я не знаю, как сосредоточиться именно на элементе моегоUIPinchGesture Был на.

Я пытался изменитьcontentOffset каждый разgesture происходит так:

CGPoint posInView = [gesture locationInView:self];
CGPoint pointPinchTouch = CGPointMake(posInView.x - self.contentOffset.x,
                                      posInView.y - self.contentOffset.y);
CGPoint newOffset = CGPointMake(self.contentOffset.x * (gesture.scale * 2),
                                self.contentOffset.y * (gesture.scale * 2));
[self setContentOffset:newOffset animated:NO];

Но мне так и не удалось остаться наCGPoint мойUIPinchGesture был выполнен.

Кроме того, когдаscrolling в целомUICollectionViewмойcontentOffset все еще{0,0} когдаscroll не закончилось Так что начинайте сжимать, я всегда оказываюсь в верхнем левом углу. ПосколькуUICollectionView Кажется, он не предназначен для горизонтального и вертикального использования, поэтому я также не могу использоватьdelegate методыUIScrollView заzooming, Может кто-нибудь подскажет, как решить эту проблему.