我正在开发一个带有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开始的地方居中。
我该如何解决这个问题?
谢谢