【问题标题】:Problem scaling UIImageView with Pinch Gesture使用捏合手势缩放 UIImageView 的问题
【发布时间】:2011-10-17 18:59:15
【问题描述】:

我有一个程序可以创建一个小的 UIImageView 来响应触摸,这样你就可以在超级视图周围拖动它。

我添加了一个 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 开始 iPhone 4 开发一书中的“捏我”示例。

既然 contentScaleFactor 不起作用,我需要使用核心图形属性吗? CGAffineTransformScale和它有关系吗?

谢谢!

【问题讨论】:

    标签: iphone ios uiimageview cgaffinetransform


    【解决方案1】:

    contentScaleFactor 没有做你认为它做的事情......你想要的是替换这一行:

    initialScale = dragImage.contentScaleFactor; 
    

    initialScale = dragImage.transform.a;
    

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

    【讨论】:

    • 谢谢!!我将不得不对核心图形进行更多阅读
    • 天哪,我花了好几个小时试图弄清楚为什么它会重置,我什至写了奇怪的函数,而且为了这么简单的东西......谢谢你的帮助
    猜你喜欢
    • 1970-01-01
    • 2011-03-27
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    相关资源
    最近更新 更多