在放大后点击时将UIImageView返回到起始坐标?

时间:2014-09-23 00:35:47

标签: ios objective-c uiimageview

我创建了一个UIImageView,我的用户可以放大并从左到右平移;效果很好。但是我想这样做,以便当用户点击屏幕时,图像会回到原来的位置(在用户放大或平移之前)。知道如何编排它吗?请参阅以下当前代码:

ViewController.m

- (IBAction)pinchGestureDidFire:(UIPinchGestureRecognizer *)pinch {
    UIView *pinchView = pinch.view;
    CGRect bounds = pinchView.bounds;
    CGPoint pinchCenter = [pinch locationInView:pinchView];
    pinchCenter.x -= CGRectGetMidX(bounds);
    pinchCenter.y -= CGRectGetMidY(bounds);
    CGAffineTransform transform = pinchView.transform;
    transform = CGAffineTransformTranslate(transform, pinchCenter.x, pinchCenter.y);
    CGFloat scale = pinch.scale;
    transform = CGAffineTransformScale(transform, scale, scale);
    transform = CGAffineTransformTranslate(transform, -pinchCenter.x, -pinchCenter.y);
    pinchView.transform = transform;
    pinch.scale = 1.0;

}

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
{
    BOOL shouldReceiveTouch = YES;

    if (gestureRecognizer == tap) {
        shouldReceiveTouch = (touch.view == featureImage);
    }
    return shouldReceiveTouch;
}

- (IBAction)panWasRecognized:(UIPanGestureRecognizer *)recognizer {
    CGPoint translation = [recognizer translationInView:featureImage];

    CGPoint center = featureImage.center;
    center.x += translation.x;
    center.y += translation.y;
    featureImage.center = center;

    [recognizer setTranslation:CGPointZero inView:featureImage];    

}

-(void)imgToFullScreen {


    [[NSBundle mainBundle] loadNibNamed:@"FullSized" owner:self options:nil];
    CATransition *transition = [CATransition animation];
    transition.duration = 0.5;
    transition.type = kCATransitionReveal;
    [mrView.layer addAnimation:transition forKey:nil];
    [self.view addSubview:mrView];

    NSString *imageUrl = [NSString stringWithFormat:@"/image/%@",cellImageLink];

    [self.featureImage sd_setImageWithURL:[NSURL URLWithString:imageUrl]];

    featureImage.userInteractionEnabled = YES;


}

1 个答案:

答案 0 :(得分:0)

向视图添加UITapGestureRecognizer。触发后,将视图transform设置回CGAffineTransformIdentity