PinthToZoom и Pan of UIView с несколькими изображениями
Я разрабатываю приложение для iphone с UIView, в котором изображение является фоновым, а несколько кнопок - изображением в качестве фона. Изображение - это изображение страны, а кнопки - это регионы / штаты этой страны.
Проблема в том, что на экране слишком мало информации для отображения всех этих данных, поэтому я хочу включить функцию масштабирования UIView, которая позволяет пользователю лучше видеть страну.
Внутри viewDiDLoad моего UIViewController я добавил:
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.
Как я могу решить эту проблему?
Благодарю вас