【发布时间】:2016-01-05 09:25:04
【问题描述】:
我有一个视图控制器,可以全屏显示内容,包括在状态栏和导航栏后面。这些栏可以切换隐藏/不隐藏,因此,控制器不断覆盖 self.view.frame 以保持内容覆盖全屏(即防止自动布局在栏重新出现时稍微向下移动内容,移动它当他们消失时,起来)。内容是一个滚动视图,里面嵌套的是一个可以被滚动视图缩放的图像视图。这个控制器一直被父控制器推送,并且有垂直覆盖动画。
但是,我遇到了一个问题,即当它第一次呈现时,滚动视图的框架设置不正确,因此,图像最初是偏离中心的,并且看起来会“跳转”到正确的位置动画完成后居中位置,主线程恢复布局功能而不是动画。在最初的问题之后,一切都按预期工作。
如果我完全禁用动画,它会按预期工作。我相信它与视图控制器的生命周期有关。在 viewDidLoad 期间,滚动视图的帧大小不正确(笔尖默认值),并且在调用 layoutSubviews 之前不会被自动布局纠正。但是,我需要在此之前设置框架,因为在此期间演示动画已经开始工作。我也不能禁用自动布局,除非它仅适用于这个特定的视图控制器。
【问题讨论】:
-
嗨。我遇到了同样的问题。你找到解决方案了吗?
标签: ios objective-c xcode xcode-storyboard