Как я могу получить текущий уровень масштабирования в UIScrollView?

В попытке создать обходной путь для центрирования изображения в UIScrollView и заставить его вести себя так же, как приложение Apple Photos, мне нужно получить текущий уровень масштабирования и использовать это число для расчета количества, которое изображение должно быть вставлено на каждом уровне масштабирования.

(Примечание: мне известно, что некоторые программисты центрируют изображение в scrollview, центрируя изображение в UIView того же размера, что и scrollview. Это не дает хороших результатов, и я пытаюсь выяснить, как Apple заставила его работать в приложении для фотографий.)

Итак, кто-нибудь знает, как получить текущий уровень масштабирования контента в UIScrollView?


person Jonah    schedule 20.09.2009    source источник


Ответы (2)


В OS 3.x есть свойство zoomScale, которое даст вам то, что вы хотите. Я считаю, что в версии 2.x вы можете посмотреть непосредственно на преобразование contentView, чтобы получить это (но это, конечно, не «официально»).

person Ben Gottlieb    schedule 20.09.2009
comment
Я пытаюсь: NSLog (@% d, myScrollView.zoomScale); в моем методе scrollViewDidEndZooming, но он получает только 0. Что я здесь делаю не так? Я знаю, что вы можете использовать zoomScale в качестве установщика, но работает ли он, чтобы получить текущий масштаб масштабирования? - person Jonah; 20.09.2009

Да, я получил ответ на вашу проблему. Я думаю, вам следует использовать этот метод в своем классе scrollViewController.

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{
    NSLog(@"Zoomscale %f",scale);
        NSLog(@"Zoom End!");
}
person zayar    schedule 17.09.2010