【问题标题】:Xcode 7, iOS 9 and Swift 2.0 makes the life cycle of the ViewController very weirdXcode 7、iOS 9 和 Swift 2.0 让 ViewController 的生命周期变得非常诡异
【发布时间】:2015-10-19 06:15:51
【问题描述】:
  1. 在Swift 2.0中,我push了一个ViewController,VC是从Xib初始化的,问题来了:VC加载很慢。如果我在 VC 的 ViewDidLoad 中做某事,VC 显示可能需要 5 秒或更长时间。

  2. IOS 9 之前使用 SizeClass,VC 视图的大小在 viewWillAppear 中是正确的,但是在 iOS 9 中,ViewWillAppear 中的视图大小实际上是 600 * 600 并且只有在 ViewDidAppear 中才能得到正确的大小,现在很多操作不能写在里面,不能写在 ViewDidLoad 或 ViewWillAppear 里,只能写在 ViewDidAppear 里。

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    你最好改用viewWillLayoutSubviews。不建议将 viewWillAppear 用于框架相关操作。

    【讨论】:

    • 一点也不。 viewDidLoad 每个 VC 调用一次,是初始化一些不会改变的翻译标签的好地方。
    • 我需要在 viewWillLayoutSubviews 中添加一些子视图,但是这个方法被调用了多次,如何解决这个问题?
    • viewWillLayoutSubviews 被多次调用是有充分理由的 - 例如,如果您更改方向,您的子视图将再次以不同的尺寸“布局”,您可能需要尊重这些尺寸。为了只解决一个问题,您可以使用布尔标志或使用 dispatch_once。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多