我正在开发一个带有 UIView 的 iphone 应用程序,该应用程序具有图像作为背景和多个按钮以图像作为背景。图像是一个国家/地区的图像,按钮是该国家/地区的地区/州。
问题是屏幕太小,无法显示所有这些数据,所以我想启用 UIView 的捏合缩放功能,让用户可以更好地了解国家/地区。
在我的 UIViewController 的“viewDiDLoad”中,我添加了:
UIPinchGestureRecognizer *twoFingerPinch = [[[UIPinchGestureRecognizer alloc]
initWithTarget:self
action:@selector(twoFingerPinch:)]
autorelease];
[[self view] addGestureRecognizer:twoFingerPinch];
我添加了 twoFingerPinch 方法:
- (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 开始的地方居中。
我怎么解决这个问题?
谢谢你