PinthToZoom和Pan of UIView有多个图像

时间:2012-01-26 08:48:41

标签: uiscrollview zoom uigesturerecognizer pinch pan

我正在开发一个带有UIView的iphone应用程序,它有一个图像作为背景和多个按钮,图像作为背景。图像是国家/地区的图像,按钮是该国家/地区的区域/状态。

问题是屏幕显示所有这些数据太少,所以我想启用UIView的缩放,以便用户更好地查看国家。

在我的UIViewController的'viewDiDLoad'中,我添加了:

UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc] 
                                             initWithTarget:self 
                                             action:@selector(twoFingerPinch:)] 
                                            autorelease];

[[self view] addGestureRecognizer:twoFingerPinch];

我添加了两个FingerPinch方法:

- (void)twoFingerPinch:(UIPinchGestureRecognizer *)recognizer {
   if (recognizer.scale > minValue){
      CGAffineTransform transform = CGAffineTransformMakeScale(recognizer.scale, recognizer.scale);
      self.view.transform = transform;
   }
}

并且它正常工作,问题是UIView变得更大但用户无法在里面导航。

所以我将UIView切换到UIScrollView并在'twoFingerPinch'方法中添加:

if (recognizer.state == UIGestureRecognizerStateEnded){

    float scaleForView = mLastScale;

    UIScrollView *tempScrollView=(UIScrollView *)self.view;

    int newWidth = self.view.frame.size.width * scaleForView;
    int newHeight = self.view.frame.size.height * scaleForView;

    tempScrollView.contentSize=CGSizeMake(newWidth,newHeight);

    mLastScale = 1.0;
}

但它不能正常工作:UISrollView变得更大但是它不会随着图像缩放而变大,也不会在pinchToZoom开始的地方居中。

我该如何解决这个问题?

谢谢

0 个答案:

没有答案