UIPinchGestureRecognizer Масштаб просмотра в разных направлениях х и у - PullRequest
3 голосов
/ 18 марта 2011

Я не хочу использовать масштаб как классический зум, вместо этого я хочу, например, изменить форму квадратов на прямоугольник.После долгих попыток я так далеко, что мои пальцы - углы прямоугольника.Поэтому, если я начну новый жест щепотки внутри, мой взгляд станет меньше для моих пальцев, чем увеличится, как это делает нормальный масштаб.изменить размер, чтобы мои пальцы располагались как углы.Example

Большое спасибо

1 Ответ

12 голосов
/ 18 марта 2011

Получил решение

- (void) scaleSelfWith:(UIPinchGestureRecognizer *)gestureRecognizer{
if ([gestureRecognizer numberOfTouches] >1) {

    //getting width and height between gestureCenter and one of my finger
    float x = [gestureRecognizer locationInView:self].x - [gestureRecognizer locationOfTouch:1 inView:self].x;
    if (x<0) {
        x *= -1;
    }
    float y = [gestureRecognizer locationInView:self].y - [gestureRecognizer locationOfTouch:1 inView:self].y;
    if (y<0) {
        y *= -1;
    }

    //set Border
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) {
        xDis = self.bounds.size.width - x*2;
        yDis = self.bounds.size.height - y*2;
    }

    //double size cause x and y is just the way from the middle to my finger
    float width = x*2+xDis;
    if (width < 1) {
        width = 1;
    }
    float height = y*2+yDis;
    if (height < 1) {
        height = 1;
    }
    self.bounds = CGRectMake(self.bounds.origin.x , self.bounds.origin.y , width, height);
    [gestureRecognizer setScale:1];
    [[self layer] setBorderWidth:2.f];
}
}  

добавлены xDif и yDif с расстоянием моего касания со стороны вида.
после шкалы я добавляю их к размеру

...