为UIPinchGestureRecognizer 添加事件如下事件
-(void)pinch:(UIPinchGestureRecognizer *)recognizer{
NSLog(@"pinch");
recognizer.scale=recognizer.scale-_lastScale+1;
view.transform=view.transform=CGAffineTransformScale(view.transform, recognizer.scale,recognizer.scale);
_lastScale=recognizer.scale;
}这个函数之所以加了一个_lastScale 的原因:
当用户捏合图片的时候,recognizer.scale的值不断在变化 比如:1.1 1.2 1.3
那么如果上述函数中只有view.transform=view.transform=CGAffineTransformScale(view.transform, recognizer.scale,recognizer.scale);这一句话是
就会出现如下情况 1.1的时候放大1.1倍 , 1.2的时候放大现在的1.2倍,依次类推,但是实际情况并不是这样的,我们只是想让这个图片在原来的状态下(也就是最初的那张图片,没有任何拉伸),进行1.2 或者1.3倍的拉伸,为了解决这个问题,比如现在recognizer.scale 为1.3 上次的为1.1 ,1.3-1.1=0.2 1.3相对于1.1只是多了0.2 ,而不是要增大1.3倍,这个1.3倍是相对于原来的图片说的,所以0.2+1
说的有点乱。。。,表达能力不是很好,可是试一下效果
附加问题:
如果是把要拉伸的图片加到UIScrollview上边,那么对该scrollview要
scrollView.canCancelContentTouches=NO;
scrollView.delaysContentTouches=NO;
防止只响应UIScrollview的事件