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 conjuntoUICollectionView
micontentOffset
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.