iPhone iOS, как заставить UIScrollView работать с UIRotationGestureRecognizer при включенном масштабировании? - PullRequest
1 голос
/ 22 марта 2012

Я работаю в iOS5, и, очевидно, я должен быть в состоянии контролировать или, по крайней мере, подчинить внутренний распознаватель жестов сжатия UIScrollView с помощью scrollView.pinchGestureRecognizer.

Однако мой код, похоже, не работает.Распознаватель не обрабатывает мой класс как делегат и не ожидает сбоя распознавателя жестов вращения.Что я могу сделать, чтобы сделать жест вращения приоритетным, после чего будет считаться повышение?

Точнее говоря, проблема, с которой я работаю, заключается в том, что вид, который поворачивается и масштабируется с тем жевремя «улетает с экрана» в направлении нижнего левого угла, больше никогда его не увидеть.

-(void)setup scrollViews
{
        [tempScrollView.pinchGestureRecognizer requireGestureRecognizerToFail:rotationRecognizer];
        tempScrollView.pinchGestureRecognizer.delegate = self;

        tempScrollView.maximumZoomScale = 4.0;
        tempScrollView.minimumZoomScale = 0.25;
//        
        tempScrollView.delegate = self;
}

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{

    if([gestureRecognizer isEqual:rotationRecognizer])
    {
       NSLog(@"Rotation gesture");
    }else {
        NSLog(@"Other gesture: %@", [gestureRecognizer class]);
    }
    return YES;

}

    - (IBAction)rotateView:(id)sender {

        if([sender isKindOfClass:[UIRotationGestureRecognizer class]])
        {
            UIRotationGestureRecognizer* recognizer = sender;

            float recognizerRotation = [recognizer rotation];
            CGAffineTransform transform = CGAffineTransformMakeRotation(recognizerRotation);
    activeView.transform = transform;

        }

    }

1 Ответ

0 голосов
/ 19 июля 2012

Насколько я знаю, pinchGestureRecognizer в UIScrollView только для чтения.Однако вы можете попытаться создать подкласс UIScrollView и переопределить метод addGestureRecognizer:, чтобы отключить pinchGestureRecognizer, а затем добавить свой собственный pinchGestureRecognizer.

.
...