iphone - 使用捏合手势缩放 UIImageView 时出现问题

标签 iphone ios uiimageview cgaffinetransform

我有一个程序,可以创建一个响应触摸的小 UIImageView,以便您可以将其拖动到 super View 周围。

我添加了一个 UIPinchGestureRecognizer 来缩放图像。使用当前代码,图像可以完美地放大和缩小,但当新的捏合手势开始时,图像会以 1.0 的比例重新启动。

我尝试使用 contentScaleFactor 来获取初始 ImageView 比例,但它始终为 1.0,因此显然下面的代码无法正常工作。

- (void)doPinch:(UIPinchGestureRecognizer *)pinch {



if (pinch.state == UIGestureRecognizerStateBegan) {

    initialScale = dragImage.contentScaleFactor;        

    } else {

    CGFloat newScale = initialScale * pinch.scale;

    CGAffineTransform transform = CGAffineTransformMakeScale(newScale,newScale);

    dragImage.transform = transform;

    }


}

此代码改编自 Apress Beginning iPhone 4 Development 书中的“Pinch me”示例。

由于 contentScaleFactor 不起作用,我是否需要使用核心图形属性? CGAffineTransformScale 与它有什么关系吗?

谢谢!

最佳答案

contentScaleFactor 没有做你想象的那样......你想要的是替换这一行:

initialScale = dragImage.contentScaleFactor; 

initialScale = dragImage.transform.a;

...您将成为一个快乐的露营者(“a”代表当前应用于dragImage的变换矩阵的x比例因子)。

关于iphone - 使用捏合手势缩放 UIImageView 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6904617/

相关文章:

ios - 无法将排序的字典序列化为 JSON - Swift 3

cocoa-touch - 想要使用 UISwipeGesture 在 NSArray 中的图片之间平滑过渡或滑动

Swift:UIImageView - 在展开可选值时意外发现 nil

iphone - UIScrollView ImageView 顶部有别针

iphone - 同时播放两个声音

iphone - 如何在 iphone 中以编程方式创建 PLIST 文件

ios - 使用资源包发布 cocoapod

ios - Yelp API ios 获取更大的图像

iphone - 背景图片无法在 iPhone 上调整大小

iphone - 跟踪 UIView 帧变化动画