2010-06-16 2 views
3

В UIScrollview, когда я прокручиваю/перетаскиваю, я получил изменения в scrollview contentOffset, которые представляют, сколько я прокрутил/перетащил в scrollview. Таким образом, я обновил subview scrollview для прокрутки.Сколько контента влияет на изменение UIScrollview для масштабирования?

Но, когда я увеличиваю масштаб прокрутки (используя масштабирование зума), также изменяются элементы contentOffsets прокрутки. Я не понимаю, сколько contentOffset изменилось, потому что я не могу связать изменения с помощью значения zoomScale. Итак, есть ли все-таки знать изменения в contentOffset для масштабирования?

Мое намерение - получить значение contentOffset изменений для перетаскивания во время масштабирования (что не получается из-за изменения смещения смещения контента), чтобы я мог соответствующим образом обновить подзаголовок scrollview.

Я застрял здесь. Любая помощь будет очень оценена.

благодаря

Shaikot

ответ

5

Я создал небольшой тестовый проект, и это выглядит как contentOffset умножается на zoomScale. Поэтому, если вы хотите это объяснить, просто разделите его на zoomScale перед его использованием.

Может быть, лучше всего проиллюстрировать небольшим примером: Я настроил scrollView и добавил представление, которое достаточно велико, чтобы панорамировать и немного увеличивать масштаб. Для этого я добавил небольшое красное представление, которое я хочу сохранить в том же положении, несмотря ни на что. Я наблюдая свойство contentOffset из Scrollview, и я реализовал это следующим образом:

CGPoint contentOffset = self.scrollView.contentOffset; 
CGFloat zoomScale = self.scrollView.zoomScale; 

self.moveView.frame = CGRectMake((contentOffset.x+10)/zoomScale, 
           (contentOffset.y+10)/zoomScale, 
           10, 
           10); 

Это держит moveView в том же положении на экране, только масштабирование, когда пользователь изменяет масштаб изображения.

Надеюсь, это немного очистит, но дайте мне знать, если я могу сделать больше, чтобы помочь.