UIScrollView 委托如何知道我的 UIScrollView ivar?

Posted

技术标签:

【中文标题】UIScrollView 委托如何知道我的 UIScrollView ivar?【英文标题】:How does the UIScrollView delegate know about my UIScrollView ivar? 【发布时间】:2010-12-10 19:05:33 【问题描述】:

我正在开发一个具有分页 UIScrollView 的应用程序,其中包含三个滚动视图作为子视图,这些子视图显示您可以捏合和放大的图像。代码来自 Apple 的“PhotoScroller”示例代码,但我已经去掉了平铺功能,因为我想先掌握基础知识。

我可以放大我的不同图像并浏览它们,这很棒。当我离开已放大的图像以转到 pagingScrollView 的下一个“页面”时,我希望它恢复到原来的缩放大小,现在它保持在我离开它的缩放级别。

我想我需要编写一些代码来告诉缩放后的UIScrollView 在我进入下一页时返回到适当的缩放比例。我的问题是我该怎么做?

到目前为止,我一直在使用UIScrollView 的委托方法“scrollViewDidScroll”和“contentOffset”属性。另一个想法是不知何故收到 pagingScrollView 已移至下一个“页面”的通知。

有什么想法吗?

【问题讨论】:

【参考方案1】:

如果您想知道滚动视图何时停止(例如,用户放手并且滚动视图已卡入新页面上的位置),您可以使用scrollViewDidEndDecelerating:。然而,在允许滚动器完全停止之前,用户可能滚动了几页,因此用户停止的最后一页可能不是前一页或后一页。您可以保留指向当前页面的指针,并且每次用户停留在页面上时,都会在更新当前页面指针之前将先前的当前页面恢复到默认缩放级别。

【讨论】:

酷,有道理。谢谢!

以上是关于UIScrollView 委托如何知道我的 UIScrollView ivar?的主要内容,如果未能解决你的问题,请参考以下文章

将 UIScrollView 委托设置为它自己的自定义类

Swift 3 - 如何在 .xib 文件上为 UIScrollView 分配委托?

如何在具有自动布局的操作上自动增加 UIScrollView 中的内容大小?

UIScrollView 实现委托

在程序生成的滚动完成后将调用啥 UIScrollview 委托方法

用UIScrollView缩放时,无法正常滚动到下端