Zoom en una vista UICollectionView bidimensional

Creé unUICollectionView que es horizontal y vertical. Tiene diferenteUICollectionViewCells. Todo está diseñado correctamente. Ahora estoy tratando de hacerlozoomable. losUICollectionViewCells se redimensionan correctamente también. Cada vez que elUIPinchGesture ocurre, configuro elitemSize dentro deUICollectionViewLayout depender de lascale.

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

Aquí puedes ver el métodosetItemSize Estoy llamando dentro de mi CustomLayout.

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

    _itemSize = itemSize;

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

Mi problema es saber, todos los artículosresize en la parte inferior derecha y no sé cómo centrarme exactamente en el elemento miUIPinchGesture estaba en.

Traté de cambiar elcontentOffset cada vez que elgesture Ocurre así:

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];

Pero nunca logré quedarme en elCGPoint miUIPinchGesture Fue ejecutado.

Además cuandoscrolling en conjuntoUICollectionViewmicontentOffset es todavía{0,0} cuando elscroll no terminó Así que comienza a pellizcar, siempre termino en la esquina superior izquierda. Porque elUICollectionView parece que no está diseñado para usarse horizontal y vertical al mismo tiempo, es por eso que tampoco puedo usar eldelegate métodos deUIScrollView parazooming. Quizás alguien pueda decirme cómo resolver este problema.

Respuestas a la pregunta(1)

Su respuesta a la pregunta