如何在旋转或调整大小时通过中间中心部分而不是左上角来维护 UIScrollView 的 contentOffset?

Posted

技术标签:

【中文标题】如何在旋转或调整大小时通过中间中心部分而不是左上角来维护 UIScrollView 的 contentOffset?【英文标题】:How to maintain a UIScrollView's contentOffset by middle center part instead of top left corner while rotating or resizing? 【发布时间】:2017-08-30 04:31:43 【问题描述】:

UIScrollView 有一个contentOffset 属性,其中包含其内容的左上角偏移量。

当您旋转您的设备,或以某种方式从程序的其他部分更改 UIScrollView 的 bound.size 时,contentOffset 的值不会改变,这意味着可见内容的左上角保持不变。

我的问题是,如果在旋转或更改 UIScrollView 的 bound.size 时可见内容使其看起来更好看,是否有任何方法可以保留中间中心部分?

【问题讨论】:

【参考方案1】:

如果你旋转你的 iPhone,viewWillTransitionToSize:withTransitionCoordinator: 方法会被调用。

覆盖此方法并将contentOffset 重新调整到您要显示的位置。

【讨论】:

以上是关于如何在旋转或调整大小时通过中间中心部分而不是左上角来维护 UIScrollView 的 contentOffset?的主要内容,如果未能解决你的问题,请参考以下文章

如何在旋转和调整大小后设置矩形的中心点,保持旧位置

旋转到横向时自动调整 UINavigationBar 的大小

Ionic2 Signature Pad 调整图像大小

颤动 - 如何使用画布围绕中心旋转图像

调整大小后如何保持表单居中在屏幕中间

如何使用 JavaScript 调整画布大小?