我有一个 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/