如何在iOS中使用UIPinchGestureRecognizer并在Simulator上进行测试

时间:2014-07-14 10:21:10

标签: ios ios-simulator uigesturerecognizer uipinchgesturerecognizer

利用我对iOS的小知识试图在 ImageView 上测试缩放功能,我不想使用 scrollView 所以尝试使用 UIPinchGestureRecognisor 即可。

在模拟器上测试它可能是我的错,我正在尝试使用alt键和鼠标移动测试,因为我在很多帖子上阅读并在谷歌上搜索。

这是我试过的CODE。

<。>文件中的

@interface DetailView : UIViewController <UIGestureRecognizerDelegate>

在实施文件

in ViewdidLoad

UIPinchGestureRecognizer  *pinchImage = [[UIPinchGestureRecognizer alloc] initWithTarget:self
action:@selector(makePinch:)];
pinchImage.delegate = self;
[self.myLrgImageView addGestureRecognizer:pinchImage];

逐一尝试使用这些选择器方法

1

-(void)makePinch:(UIPinchGestureRecognizer*)sender
{
static CGRect initialBounds;
if (sender.state == UIGestureRecognizerStateBegan)
{
    initialBounds = myLrgImageView.bounds;
}
CGFloat factor = [(UIPinchGestureRecognizer *)sender scale];

CGAffineTransform zt = CGAffineTransformScale(CGAffineTransformIdentity, factor, factor);
myLrgImageView.bounds = CGRectApplyAffineTransform(initialBounds, zt);
}

2

CGFloat lastScale;
CGPoint lastPoint;
- (void)makePinch:(UIPinchGestureRecognizer *)sender
{ 
if (sender.state == UIGestureRecognizerStateBegan) {
    lastScale = 1.0;
    lastPoint = [sender locationInView:myLrgImageView];
}

// Scale
CGFloat scale = 1.0 - (lastScale - sender.scale);
[myLrgImageView.layer setAffineTransform:
 CGAffineTransformScale([myLrgImageView.layer affineTransform],
                        scale,
                        scale)];
lastScale = sender.scale;

// Translate
CGPoint point = [sender locationInView:myLrgImageView];
[myLrgImageView.layer setAffineTransform:
 CGAffineTransformTranslate([myLrgImageView.layer affineTransform],
                            point.x - lastPoint.x,
                            point.y - lastPoint.y)];
lastPoint = [sender locationInView:myLrgImageView];
}

在选择器方法上设置断点,但compilor永远不会进入此方法。

可能是这些代码完美无缺,我错误地使用模拟器进行双指测试

按住选项键,鼠标左键单击&amp;移动鼠标并没有给我任何成功。

按住鼠标左键单击并移动鼠标,按住命令+选项键不会给我任何成功。

帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

使用self.myLrgImageView.userInteractionEnabled = YES; 您可以使用(命令+ alt)键和鼠标在模拟器上测试PinchGesture。