0

Мне нужно иметь два UIImageView, с включенным масштабированием (я могу использовать типичную технику UISCrollView), и всякий раз, когда я увеличиваю масштаб, один из них приведет к увеличению масштаба в другом, а также в той же точки и с тем же зумом.Zoom одновременно в двух UIImageView

Вот поясняющее видео: https://youtu.be/Ft-Dt3fx3z8?t=29s

Знает ли вы какое-либо решение?

Благодаря

ответ

0

Я ответил на мой собственный вопрос, первое решение сигналя асинхр без прокрутки

- (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]; 
    } 
}