【发布时间】: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