29,031
社区成员
发帖
与我相关
我的任务
分享
imgView.layer.anchorPoint = CGPointMake(0.5,0.5f);
放到手势处理函数外部来设定。//两点缩放手势UIPinchGestureRecognizer的响应函数
-(IBAction) pinchGestureHandler:(id)sender
{
UIPinchGestureRecognizer * pinchGesture = sender;
NSLog(@"缩放手势已经响应");
CGFloat scaleValue = [pinchGesture scale];
imgView.layer.anchorPoint = CGPointMake(0.5,0.5f);
if (scaleValue > 1) {//放大
pinchGesture.view.transform = CGAffineTransformMakeScale(lastScaleValue+(scaleValue-1), lastScaleValue+(scaleValue-1));
}else{//缩小
pinchGesture.view.transform = CGAffineTransformMakeScale(lastScaleValue*scaleValue,lastScaleValue*scaleValue);
}
if (pinchGesture.state == UIGestureRecognizerStateEnded) {
if (scaleValue > 1) {
lastScaleValue += (scaleValue-1);
}else{
lastScaleValue *= scaleValue;
}
}
}
//两点缩放手势 安装函数
-(void) installPinchGesture
{
UIPinchGestureRecognizer * pinchGesture;
//1 构造手势 (注意手势的响应函数)
pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchGestureHandler:)];
//2 设置手势
//...
lastScaleValue = 1;//成员变量
//3 为具体的view添加手势
[imgView addGestureRecognizer:pinchGesture];
}