IOS: масштабирование для просмотра uiscrollview только с мультитачем - PullRequest
1 голос
/ 13 февраля 2012

У меня есть этот код:

[scrollView setMinimumZoomScale:1.00];
[scrollView setMaximumZoomScale:2.00];
scrollView.delegate=self;

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

   NSSet *allTouches = [event allTouches];
    if ([allTouches count] == 2) {

        NSLog(@"multitouch");
        zoomMultiTouch = TRUE;


    }

     else if ([allTouches count] == 1){

        NSLog(@"single touch");
        zoomMultiTouch = FALSE;
    }

     else return;

}


- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {


    if (zoomMultiTouch){
        scrollView.userInteractionEnabled = YES;
        scrollView.scrollEnabled = YES;
        NSLog(@"zoomMultitouch moved");
    }

    else {
        scrollView.userInteractionEnabled = NO;
        scrollView.scrollEnabled = NO;
        NSLog(@"NOzoom moved");
    }

  //some code for coloring an image

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    scrollView.userInteractionEnabled = NO;
    scrollView.scrollEnabled = NO;
    zoomMultiTouch = FALSE;
}

как видите, я хочу увеличить scrollView с изображением внутри; когда я касаюсь scrollView пальцем, я окрашиваю изображение, вместо этого, когда я касаюсь scrollView двумя пальцами, я хочу увеличить его, и после, если я касаюсь пальцем, zomm должен быть отключен. с моим кодом этого не происходит; распознает двойное касание, но не активирует увеличение, почему?

1 Ответ

0 голосов
/ 16 февраля 2012

Мне кажется, проблема в том, что вы не реализуете все необходимые методы делегирования для масштабирования.

The UIScrollView class can have a delegate that must adopt the UIScrollViewDelegate protocol. For zooming and panning to work, the delegate must implement both viewForZoomingInScrollView: and scrollViewDidEndZooming:withView:atScale:; in addition, the maximum (maximumZoomScale) and minimum ( minimumZoomScale) zoom scale must be different.

Надеюсь, это поможет.

Класс UIScrollViewСсылка

...