Theres широкий UIScrollView (давайте назовем его wideScroll) и внутри него, меньшие UIScrollViews (назовите их singleScrollViews).И в каждом SingleScrollView есть UIView, который содержит два разных UIImageView.
Мне нужно использовать прокручивающиеся делегаты для wideScroll и масштабирующие делегаты для singleScrollViews.
Как это сделать, я использую делегаты UIScrollView в классе wideScroll, и когда происходит событие масштабирования, я возвращаю указатель на UIView нужного singleScrollView в методе;
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
//here i determine "int someint" according to current page.
SingleScrollView *b = (SingleScrollView *)[wideScrollView viewWithTag:someint];
return ((UIView *)[b viewWithTag:WRAPPERVIEW_TAG]);
}
КогдаЯ делаю это, масштабирование отдельных singleScrollViews работает нормально, за исключением одной вещи: когда singleScrollView достигает своего максимума ZoomScale, масштабирование заканчивается, но перед вызовом метода scrollViewDidEndZooming последний раз вызывается scrollViewDidZoom и устанавливается смещение содержимого.UIView в (0,0), заставляя изображение прокручиваться к верхнему левому углу.
Напротив, когда я увеличиваю масштаб, не достигая MaximumZoomScale, UIView остается там, где он увеличен, не прокручивая вверх или что-либо еще.
Кроме того, метод "- (UIView *) viewForZoomingInScrollView: (UIScrollView *) scrollView" вызывается трижды, когда я достигаю MaximumZoomScale при масштабировании.
Любые идеи?
Обходной путь: я установил максимальный масштаб на 2.01 и когда singleScrollView.ZoomScale равен> 2.00, я установил его обратно в 2,00 в начале метода удаленного ScrollViewDidZoom.