Как масштабировать вид без CGAffineTransform - PullRequest
0 голосов
/ 31 августа 2011

Мне нужно масштабировать представление с помощью UIPinchGestureRecognizer, но без CGAffineTransform, так как изменить этот код, чтобы сделать это без CGAffineTransform?

- (IBAction)zoomma:(UIGestureRecognizer *)sender {

    CGFloat factor = [(UIPinchGestureRecognizer *)sender scale];
    if (factor > 1) {
        self.sgungaView.transform = CGAffineTransformMakeScale(lastScaleFactor + (factor-1), lastScaleFactor + (factor-1));
    } else {
        self.sgungaView.transform = CGAffineTransformMakeScale(lastScaleFactor * factor, lastScaleFactor * factor);
    }

    if (sender.state == UIGestureRecognizerStateEnded) { 
        if (factor > 1) {
            lastScaleFactor += (factor-1); 
        } else {
            lastScaleFactor *= factor;
        }
    }
}

Редактировать:

Не шедевр, но это работает

- (void)zoomma:(UIGestureRecognizer *)sender {

    CGFloat factor = [(UIPinchGestureRecognizer *)sender scale];
    if (factor > 1) {
        float enlarge = lastScaleFactor + (factor-1);
        [self.sgungaView setBounds:CGRectMake(0, 0, self.sgungaView.bounds.size.height + enlarge, self.sgungaView.bounds.size.height + enlarge)];
    } else {
        float stringi = lastScaleFactor * factor;
        [self.sgungaView setBounds:CGRectMake(0, 0, self.sgungaView.bounds.size.height - stringi, self.sgungaView.bounds.size.height - stringi)];
    }

    if (sender.state == UIGestureRecognizerStateEnded) { 
        if (factor > 1) {
            lastScaleFactor += (factor-1); 
        } else {
            lastScaleFactor *= factor;
        }
    }
}

есть способ получше?

1 Ответ

0 голосов
/ 01 сентября 2011

Вы можете добавить UIScrollView к вашему представлению и добавить ваши элементы (элементы вашего представления) в UIScrollView.Затем вы можете использовать zoom zoom delete из UIScrollView для увеличения.

Это хорошо работает для меня.

...