2011-08-01 48 views
2

我有一个创建一个小的UIImageView,响应触及,因此你可以拖动它周围的上海华程序。问题缩放的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; 

    } 


} 

此代码是从Ach Beginning iPhone 4开发手册中的“捏我”示例改编而来的。

由于contentScaleFactor不工作,我是否需要使用核芯显卡性能? CGAffineTransformScale与它有关系吗?

谢谢!

回答

3

contentScaleFactor不会做你认为它...你想要的是替换这一行:

initialScale = dragImage.contentScaleFactor; 

initialScale = dragImage.transform.a; 

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

+0

谢谢!!我必须做核心显卡 – REDMX

+0

神了一些更多的阅读,我花了几个小时试图弄清楚这究竟是为什么它被重置,我甚至写了怪异的功能,而对于这么简单的东西... THX乌拉圭回合的帮助 – Pochi