iphone - 分页 UIScrollView 中的干净自动旋转转换

标签 iphone uiscrollview autorotate

我有一个分页 UIScrollView,用户可以在其中水平翻阅图像,例如 Apple 的 Photos.app。这可行,但现在我正在尝试添加旋转支持。

我已经让 View 旋转正常,并设法正确设置 contentSize、边界和 subview 的框架以适应不同的方向。所以旋转之前和之后,一切都OK。

但是,过渡本身很尴尬。第一个图像完美旋转,就好像旋转轴位于图像的死点( ScrollView 框架)。第二张图像“摆动”,因为旋转轴位于同一位置:第一张图像的中心。距离第一张图像越远,“摆动”越快。

我可以通过在旋转之前覆盖不透明的 UIView 并在旋转之后隐藏它来掩盖这一点。但这是一个黑客行为。必须有一种优雅的方法来做到这一点......

最佳答案

坦白说,我不知道你在做什么,因为你根本没有向我们展示太多。

但是!

我创建了一个示例项目,在 ScrollView 中包含一些 View ,并且工作正常。您可以随意将其拆开。它的工作原理是创建 5 个 View ,并将它们添加到 ScrollView 中。然后,在第一次设置这些 View 后,每次应用程序旋转时,它都会调用我的方法 alignSubviews 将它们放置在正确的页面位置,并使它们与 ScrollView 的大小相同,同时更新 ScrollView 的 contentSize。在旋转发生之前,它会跟踪 ScrollView 当前所在的页面,然后在旋转期间将其重置到该页面(因为页面大小必须更改)。

Download "Rotolling"!

screenshot

关于iphone - 分页 UIScrollView 中的干净自动旋转转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3322554/

相关文章:

iphone - iPhone中的对象释放问题

ios - 限制 ScrollView 仅在 iOS 中按下特定按钮时滚动

objective-c - UIImagePickerController(使用相机作为源)在 iPad2 上自动旋转,我如何停止它?

iphone - UIScrollview subview 在枚举时显示不正确的帧

iphone - 使用 swift 和 spritekit 调整场景大小

iphone - 以相反的顺序打印unicode NSString

SWIFT 键盘与内容重叠

ios - 长按后调用 didSelectRowAtIndexPath

android - 如何防止屏幕自动旋转但防止 Activity 旋转

ios - 如何允许 tabbar 中 vc 的子 vc 自动旋转?