在我的情况下,如何正确获取 scrollView 的 contentSize、zoomScale 和 contentOffset?

Posted

技术标签:

【中文标题】在我的情况下,如何正确获取 scrollView 的 contentSize、zoomScale 和 contentOffset?【英文标题】:How to get the contentSize, zoomScale and contentOffset of scrollView properly in my case? 【发布时间】:2015-06-08 16:04:55 【问题描述】:

我有以下情况:

包含 imageView 的滚动视图。 此 imageView 可从 1.0 缩放到 5.0 比例值。

每当方向改变时,我都会将 imageView 调整为特定的纵横比,然后将 scrollView 的 contentSize 设置为 包含 imageView。

当 scrollView 未缩放时,imageView 在任何方向都会根据我的调整大小代码适当调整大小。

当我的scrollView 以初始方向(生成它的方向)放大时,将scrollView 平移到边缘很顺利。 (问题:)在缩放状态下,如果设备的方向发生变化,我的resize代码会重新计算imageView帧,并且zoomScale设置为1。但是,如果我在新方向再次缩放,我发现imageView 获得大约 100 到 200 像素的偏移量。这会导致 imageView 在一个边缘隐藏一些内容(我无法平移更多内容以查看边缘),并且它会额外滚动,在另一边缘留下一个空白,其中不包含任何内容。

我怎样才能纠正这个问题?我希望 scrollView 的 contentSize 使其内部 imageView 处于缩放状态,在任何方向之后,缩放后的 imageView 应该能够在所有方向上平移,直到其边缘与其父 scrollView 的边缘相遇。

【问题讨论】:

【参考方案1】:

您不应调整图像视图的大小。使用 [imageView sizeToFit] 。您应该重新计算适合 ImageView 的滚动视图的缩放。

【讨论】:

好的,我明白了.. 但是,如果我真的需要更改 scrollView 中包含的视图的大小,你能告诉我任何想法吗? 我不明白你为什么需要这样做。但是,如果不调整大小/重新定位源代码,我认为我无法为您提供帮助。也许 imageview 中的图像不适合视图,也许 imageview 位置不对。

以上是关于在我的情况下,如何正确获取 scrollView 的 contentSize、zoomScale 和 contentOffset?的主要内容,如果未能解决你的问题,请参考以下文章

如何在scrollView.setOnScrollChangeListener中获取scrollY的最大值

我可以在不使用 ScrollView/ListView 的情况下使用 Pull to Refresh 吗?

如何在不阻塞 UI 的情况下正确使用 MagicalRecord 从 Web 服务导入数据

如何在没有谷歌地图 API 的情况下在我的应用程序中获取经度和纬度?

在我的情况下,如何在 <select> 中获取所选选项的 ID?

在我的情况下如何使用动态名称访问资源?