Я ответил на мой собственный вопрос, первое решение сигналя асинхр без прокрутки
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
if (scrollView == _scrollView1)
return self.imageView1;
else
return self.imageView2;
}
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{
if (scrollView == _scrollView1){
[_scrollView2 setZoomScale:scale animated:YES];
[_scrollView2 setContentOffset:_scrollView1.contentOffset animated:YES];
}
else if (scrollView == _scrollView2){
[_scrollView1 setZoomScale:scale animated:YES];
[_scrollView1 setContentOffset:_scrollView2.contentOffset animated:YES];
}
}
Во-вторых, лучшее решение с в режиме реального времени масштабирование и прокрутка (viewForZoomingInScrollView по-прежнему требуется)
- (void)matchScrollView:(UIScrollView *)first toScrollView:(UIScrollView *)second {
CGPoint offset = first.contentOffset;
offset.x = second.contentOffset.x;
offset.y = second.contentOffset.y;
[first setContentOffset:offset];
[first setZoomScale:second.zoomScale];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if([scrollView isEqual:_scrollView1]) {
[self matchScrollView:_scrollView2 toScrollView:_scrollView1];
} else {
[self matchScrollView:_scrollView1 toScrollView:_scrollView2];
}
}