我有一个 UIPageViewController ,其 View Controller 包含一个 UIScrollView ,其中包含一个 UIImageView 。在加载的 View Controller viewWillAppear 中,如果 View 旋转,则边界不正确。这是我尝试根据 this 根据图像的大小动态定位 ImageView 的地方。我尝试使用 (void)viewDidLayoutSubviews 但我需要调用 [self.view layoutSubviews] 否则我会收到断言错误。当我添加它时,我无法再缩放 ImageView 。您可以看到它尝试缩放但重新调整到最小缩放比例。
我对自动布局完全陌生,并试图看看我是否遗漏了什么。
我当前的修复涉及检查框架的边界以查看方向是否与边界匹配。如果是这样,那么我按原样使用边界。如果没有,那么我会在计算中切换高度和宽度。
我想知道如何正确使用 viewDidLayoutSubviews 而不会剥夺我放大 ImageView 的能力。
从两个答案来看,似乎 viewDidLayoutSubviews 可能是布局 View 的错误位置。我试图找到应该在哪里完成并让 View 知道它们的边界和方向,但在它们在屏幕上可见之前。从我的阅读中,我认为那是 viewDidLayoutSubviews 但似乎使用它可能会导致无限循环。

最佳答案



我会将 UIScrollView 子类化并覆盖 layoutSubviews ,只有在需要且所有变量(方向、大小等)都具有正确值时,系统才会调用它。

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

10-10 20:38