我有一个程序可以创建一个响应触摸的小UIImageView,这样你就可以在superview上拖动它。
我添加了一个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开发手册中的“Pinch me”示例。
由于contentScaleFactor不起作用,我是否需要使用核心图形属性? CGAffineTransformScale是否与它有关?
谢谢!
答案 0 :(得分:3)
contentScaleFactor不会按照您的想法执行...您想要的是替换此行:
initialScale = dragImage.contentScaleFactor;
与
initialScale = dragImage.transform.a;
...你将成为一个快乐的露营者(“a”代表当前应用于dragImage的转换矩阵的x比例因子)。