ios - 自动布局中的 viewDidLayoutSubviews 在 UIPageViewController 上旋转

标签 ios objective-c uiscrollview autolayout uipageviewcontroller

我有一个 UIPageViewController,它的 View Controller 包含一个 UIScrollView,其中包含一个 UIImageView。在加载的 View Controller viewWillAppear 中,如果 View 旋转,则边界不正确。这是我根据 this 尝试根据图像大小动态定位 ImageView 的地方。 .我尝试使用 (void)viewDidLayoutSubviews 但我需要调用 [self.view layoutSubviews] 否则我会收到断言错误。当我添加它时,我就不能再缩放 ImageView 了。您可以看到它尝试缩放,但大小调整回最小缩放。

我对自动布局完全陌生,想看看我是否遗漏了什么。

我当前的修复涉及检查框架的边界以查看方向是否与边界匹配。如果是这样,那么我按原样使用边界。如果不是,那么我会在计算中切换高度和宽度。

我想知道如何正确使用 viewDidLayoutSubviews 而不会影响我放大 ImageView 的能力。

从两个答案来看,viewDidLayoutSubviews 可能是布局 View 的错误位置。我试图找到应该在哪里完成并让 View 知道它们的边界和方向,但在它们在屏幕上可见之前。根据我的阅读,我认为那是 viewDidLayoutSubviews 但似乎使用它可能会导致无限循环。

最佳答案

From two of the answers, it looks like viewDidLayoutSubviews maybe the wrong place to layout the views. I'm trying to find where this should be done and have the view's know their bounds and orientation but before they are visible on the screen.

我会将 UIScrollView 子类化并覆盖 layoutSubviews,系统只会在需要时以及所有变量(方向、大小等)为您调用时调用它。 ) 具有适当的值。

关于ios - 自动布局中的 viewDidLayoutSubviews 在 UIPageViewController 上旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22454688/

相关文章:

iphone - 如何将 NSMutableArray 元素计数的文本输出到 iPhone 标签

ios - 在 iOS 中,alpha 为 0.5 的 shadowColor 和设置为 0.5 的 shadowOpacity 有区别吗?

iphone - 在 iOS 7 上读取 iPhone 的通话记录

iphone - UIScrollView setContentOffset : animated: not working

javascript - Websql 排队执行 - iOS6 Mobile Safari

ios - 更改 UIView 的转换不会影响约束

objective-c - UITextField 使部分不可编辑

ios - "argument contains uninitialised data"设置帧时

ios - 检查 UIView 是否在 Self.View 边界内

ios - swift-无法使用 AutoLayout 在 UIScrollView 中将 UIImageView 居中