0

Я хотел бы уменьшить поведение скорости масштабирования UIScrollView.Изменение скорости масштабирования UIScrollView

Я пробовал решения, приведенные в двух ответах: Answer 1, Answer 2, но я не получаю ожидаемых результатов.

Это моя реализация ответа 2:

- (void)scrollViewDidZoom:(UIScrollView *)scrollView { 

    if(scrollView.multipleTouchEnabled){ 

     CGFloat fSpeedZoom = 2; 
     CGFloat fMaxZoomScale = scrollView.maximumZoomScale; 
     CGFloat fMinZoomScale = scrollView.minimunZoomScale; 

     scrollView.maximumZoomScale = scrollView.zoomScale + fSpeedZoom; 
     scrollView.minimumZoomScale = scrollView.zoomScale - fSpeedZoom; 

     if(scrollView.maximumZoomScale > fMaxZoomScale){ 
      self.scrollView.maximumZoomScale = fMaxZoomScale; 
     } 

     if(scrollView.minimumZoomScale < fMinZoomScale){  
      self.scrollView.minimumZoomScale = fMinZoomScale; 
     } 
    } 
} 

Если я держу fSppedZoom значение от 2 до 5 лет я получаю вид экспоненциальное поведения, в котором в дальнейшем я стараюсь, чтобы увеличить, тем медленнее он приближается. Я хотел бы получить линейное поведение, в котором с помощью одного параметра я мог бы управлять скоростью масштабирования.

ответ

0

Я бы порекомендовал против этого.

Когда вы перетаскиваете, точка, которая находилась под пальцем, когда началось перетаскивание, остается под вашим пальцем в качестве перетаскивания. Это остается так, пока вы не достигнете края перетаскиваемой области, и в это время точка движется в том же направлении, что и кастрюля, но не так далеко, чтобы имитировать сопротивление.

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

Если вы нарушаете эту связь, то пользовательские взаимодействия кажутся чуждыми и неестественными.

Если вы абсолютно необходимы сделать это, я рекомендовал бы, вместо того, чтобы пытаться бороться UIScrollView «s встроенное масштабирование поведения, реализуя свою собственную пинч жест распознавань и рассматривая отношения вы хотите достичь между позициями вашим касания и область просмотра прокрутки, которую вы хотите показать.

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