0

我有一个UIView持有一个UIImage。我想申请UIPinchGesture这个 UIVIew Programatically。我想调整它的大小UIView

我正在添加

 UIPinchGestureRecognizer *pinchRecognizer = 
  [[UIPinchGestureRecognizer alloc] initWithTarget:self 
                                            action:@selector(handlePinch:)];
 [pinchRecognizer setDelegate:self]; 
 [frameView addGestureRecognizer:pinchRecognizer];

-(void)handlePinch:(UIPinchGestureRecognizer*)sender{
}

但是,我是第一次应用它,所以任何人都可以帮助我解决这个问题。

非常感谢您的帮助!

4

2 回答 2

1

UIPinchGestureRecogniser有一个property被调用scale,它是两次触摸scale之间的因素。CGPoints您可以使用此属性。

在您的 handlePinch: 选择器方法中添加此代码

-(void)handlePinch:(UIPinchGestureRecognizer*)sender {
    sender.view.transform = CGAffineTransformScale(sender.view.transform, 
                                                   sender.scale, 
                                                   sender.scale);
    sender.scale = 1.0;
}

如文档中所述,

比例值是随时间变化的绝对值。它不是上次报告规模时的增量值。首次识别手势时将缩放值应用于视图状态——不要在每次调用处理程序时连接该值。

所以我们需要将比例值重置为 1.0 。

于 2013-05-06T10:29:23.670 回答
1
-(void) handlePinch:(UIPinchGestureRecognizer *)gestureRecognizer{

    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged) {
        [gestureRecognizer view].transform = CGAffineTransformScale([[gestureRecognizer view] transform], [gestureRecognizer scale], [gestureRecognizer scale]);
        [gestureRecognizer setScale:1];
    }



}

有关更多详细信息,请参阅此链接

于 2013-05-06T11:05:28.583 回答