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.

Как я могу решить эту проблему?

Благодарю вас

0 ответов

Другие вопросы по тегам