UIPinchGestureRecognizer. Увеличьте расположение пальцев, а не только центр
Я могу использоватьUIPinchGestureRecognizer
для увеличения в представленииUICollectionViewCell
, но это не имеет значения, место, где вы начинаете делатьUIPinch
жестом, всегда зум идет в центре вида. Например, я хотел бы ущипнуть в левой верхней части вида, и масштаб должен быть создан в месте, где я касаюсь экрана. Но если я сделаю это, масштаб будет создан в центре вида.
Это код, который я использую для увеличения:
if([gesture state] == UIGestureRecognizerStateBegan) {
previousScale = 1.0;
}
if (
[gesture state] == UIGestureRecognizerStateChanged) {
CGFloat currentScale = [[[gesture view].layer valueForKeyPath:@"transform.scale"] floatValue];
// Constants to adjust the max/min values of zoom
const CGFloat kMaxScale = 4.0;
const CGFloat kMinScale = 1.0;
CGFloat newScale = 1 - (previousScale - [gesture scale]); // new scale is in the range (0-1)
newScale = MIN(newScale, kMaxScale / currentScale);
newScale = MAX(newScale, kMinScale / currentScale);
scale = newScale;
CGAffineTransform transform = CGAffineTransformScale([[gesture view] transform], newScale, newScale);
[gesture view].transform = transform;
[self.collectionView.collectionViewLayout invalidateLayout];
}
Итак, как я могу выбрать позицию UIPinchGesture?
Спасибо