【问题标题】:Zoom two UIScrollViews synchronously.同步缩放两个 UIScrollView。
【发布时间】:2016-05-06 23:16:04
【问题描述】:

我有两个 UIScrollView。两个滚动视图都包含一个图像。现在,如果我手动放大第一个滚动视图,我想以编程方式缩放第二个滚动视图。我正在使用 -(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 方法手动缩放第一个滚动视图。第二个滚动视图应该缩放到相同的点和比例。我怎样才能做到这一点?

【问题讨论】:

  • 提供一些代码供您参考。
  • 不要使用 2 个滚动视图。取一个滚动视图和一个图像视图。将缩放比例因子从 ScrollView 传递给 UIImageView。 (如果你在这里放一些代码会更好。)

标签: ios uiscrollview zooming


【解决方案1】:

在 UIScrollViewDelegate 方法中尝试这样的事情:

override func scrollViewDidScroll(scrollView: UIScrollView){
    otherScrollView.contentOffset = scrollView.contentOffset
    otherScrollView.zoomScale = scrollView.zoomScale
}

【讨论】:

  • 非常感谢。工作得很好!
  • 很高兴听到。您能否将我的答案标记为解决方案:)
  • 我认为这不是正确的解决方案... contentOffset 是一个 CGPoint 而 zoomScale 是一个浮点数。
【解决方案2】:

通过使用这两个滚动视图的标签或对象,您可以在 viewForZoomingInScrollView 方法中确定您需要放大哪个滚动视图。

例如

//need to set the tag for scrollviews
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
if(scrollView.tag == 1) 
{
  return firstImageView;
}
 return secondImageView;

}

OR

//need to create the object of used scrollviews
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
if(scrollView == objScrollViewFirst) 

{
  return firstImageView;
}
 return secondImageView;

}

【讨论】:

    【解决方案3】:

    这样的事情怎么样:

    CGRect zoomRect;
    zoomRect.size.height = manualScrollView.frame.size.height / manualScrollView.zoomScale;
    zoomRect.size.width  = manualScrollView.frame.size.width  / manualScrollView.zoomScale;
    zoomRect.origin.x = manualScrollView.center.x - (zoomRect.size.width  / 2.0);
    zoomRect.origin.y = manualScrollView.center.y - (zoomRect.size.height / 2.0);
    
    [autoScrollView zoomToRect:zoomRect animated:YES];
    [autoScrollView setZoomScale:manualScrollView.zoomScale animated:YES];
    

    【讨论】:

    • 谢谢。这是工作。但正如@David Williamses 回答的那样,两个滚动视图也在同时滚动。
    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多