如何缩放并排放置的两个图像?

Posted

技术标签:

【中文标题】如何缩放并排放置的两个图像?【英文标题】:How to zoom two Images placed side by side, together? 【发布时间】:2012-04-10 05:45:27 【问题描述】:

我有两个并排放置的滚动视图,它们可以单独缩放。我通过将视图放在滚动视图中并设置滚动视图的缩放比例来完成此操作。到目前为止,它工作正常!现在,有一个新的要求,将两张图片一起缩放,这样如果我缩放一张图片,另一张图片会以相同的缩放比例自动缩放。我得到了roambi app 作为参考,在比较过程中,为了方便起见,可以通过滚动其中一个滚动视图将两个滚动视图一起滚动。基本上,我所做的也是两种观点之间的比较。我已经完成了滚动视图委托方法,但无法获得所需的结果。我该怎么做?

【问题讨论】:

【参考方案1】:

我从来没有这样做过,但是在我的脑海中,我首先要说的是,你需要让它们的缩放都相同(如上所述),然后你必须使用委托方法确保您的两个滚动视图具有相同的 contentOffset 值。即,当一个通过手动滚动或编程滚动进行更改时,您必须(使用委托回调)将另一个设置为相同的 contentOffset 值。

编辑:根据要求,添加一些(未测试)代码:

- (void)scrollViewDidScroll:(UIScrollView*)scrollView

  if(scrollView == self.myFirstScroller)
  
    self.mySecondScroller.contentOffset = self.myFirstScroller.contentOffset;
   
  else 
    self.myFirstScroller.contentOffset = self.mySecondScroller.contentOffset;
  

和上面类似的缩放。

但是,如果您正在寻找一些复制粘贴解决方案,您可以直接进入您的项目,恐怕您必须自学更多关于滚动视图的知识。您应该阅读 Apple 编程指南,因为滚动视图可能有点棘手,而且您通常必须使用相当多的委托方法才能使事情正常工作。

【讨论】:

【参考方案2】:

我不久前实现了类似的东西(我为按钮做了)。我就是这样做的:

取两个UIScrollViews 并引用它们(我用过firstScrollViewsecondScrollView

取两个UIButtons 并引用它们(我用过firstImgBtnsecondImgBtn)。将委托设置为滚动视图并使用以下委托方法:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
    //return the respective button in the scrollview to be zoomed
    if(scrollView==firstScrollView)
        return firstImgBtn;
    
    else
        return secondImgBtn;
    


- (void)scrollViewDidZoom:(UIScrollView *)scrollView
    // zoom in the other scrollview when one has zoomed
    if(zoomTogether)//a bool to decide whether to zoom the two together or not
        if(scrollView==firstScrollView)
            secondScrollView.zoomScale = firstScrollView.zoomScale;
        
        else
            firstScrollView.zoomScale = secondScrollView.zoomScale;
        
    

这可以应用于UIView 的任何子类-在您的情况下它将是UIImageViews

【讨论】:

以上是关于如何缩放并排放置的两个图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个或多个元素并排放置并溢出?

如何将两个 div 并排放置?

CSS:Firefox/Internet Explorer 中 flexbox 的图像缩放问题

ios - 如何使用ios swift中的自动布局以编程方式将两个标签并排放置在中心位置?

如何在 GitHub README.md 中并排显示图像?

Android:缩放两个视图