0

Im, используя делегат GestureRecognizer для щепотки, панорамирования, поворота, длинного нажатия для изображений. Я использовал делегата UIPinchGestureRecognizer для защемления.Pinchgesture не работает для небольших изображений

Но, когда я щелкаю zoomIn, у него нет никаких проблем. Когда я увеличиваю изображение на определенном уровне, изображения невелики, и я не могу ZoomIn ущемлять изображения. После этого, когда я применяю панорамирование, панорама применяет весь вид и только изображение, пока я отпираю палец. После того, как вы отпустите мой палец, панорама применит только изображение. После прикосновения кастрюля изображение наносится на весь взгляд

код:

UIPinchGestureRecognizer *pinchGesture1 = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(ahandlePinch1:)]; 

[myImageView addGestureRecognizer:pinchGesture1]; 

-(void)ahandlePinch1:(UIPinchGestureRecognizer*)sender { 
    mCurrentScale += [sender scale] - mLastScale; 
    mLastScale = [sender scale]; 

    if (sender.state == UIGestureRecognizerStateEnded) 
    { 
     mLastScale = 1.0; 
    } 

    CGAffineTransform currentTransform = CGAffineTransformIdentity; 
    CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, mCurrentScale, mCurrentScale); 
    myImageView.transform = newTransform; 
} 

ответ

2

Вы должны изменить свой метод ahandlePinch1 так, что вы не уменьшить размер изображения ниже определенной суммы. Он почти наверняка становится настолько малым, что он больше не может обнаруживать два разных касания (которые требуются для жесты щепотки).

Apple рекомендует рекомендовать как минимум 44x44 балла в качестве осязаемой области, поэтому я предлагаю вам остановить изменение размера изображения ниже 88x88.

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

+0

Как остановить размер 88x88? – user2474320

+1

... просто добавьте условный оператор, который не применит преобразование, если ваше представление меньше 88x88. – lxt

+0

Как изменить код выше? – user2474320

Смежные вопросы