如何缩放并排放置的两个图像?
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】:我不久前实现了类似的东西(我为按钮做了)。我就是这样做的:
取两个UIScrollView
s 并引用它们(我用过firstScrollView
和secondScrollView
)
取两个UIButton
s 并引用它们(我用过firstImgBtn
和secondImgBtn
)。将委托设置为滚动视图并使用以下委托方法:
- (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
的任何子类-在您的情况下它将是UIImageView
s
【讨论】:
以上是关于如何缩放并排放置的两个图像?的主要内容,如果未能解决你的问题,请参考以下文章
CSS:Firefox/Internet Explorer 中 flexbox 的图像缩放问题