【问题标题】:How to scale a view without CGAffineTransform如何在没有 CGAffineTransform 的情况下缩放视图
【发布时间】:2011-08-31 19:19:30
【问题描述】:

我需要使用 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;
        }
    }
}

有更好的方法吗?

【问题讨论】:

  • 为什么不想使用 CGAffineTransform?
  • 我有一种方法可以在该视图上应用旋转,但我无法连接变换
  • 为什么不能连接 2 个转换?
  • 解决方案可以成为永久转换的一种方法,但似乎没有办法做到这一点
  • 我无法连接,因为旋转变换是由设备旋转驱动的,我尝试这样做没有运气

标签: iphone ios cgaffinetransform


【解决方案1】:

您可以将 UIScrollView 添加到您的视图,并将您的元素(视图的元素)添加到 UIScrollView。然后你可以使用 UIScrollView 中的缩放代理来缩放。

这对我很有效。

【讨论】:

  • 这是错误的。您为此使用 UIScrollView 浪费资源。您需要连接转换。
猜你喜欢
  • 2022-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2014-09-03
  • 2022-11-11
相关资源
最近更新 更多