斯坦福公开课Swift笔记9:生命周期 View Control

2020-07-20  本文已影响0人  CyberDunk1997

总结ViewController Lifecycle

ViewController Lifecycle
  1. VC被实例化(通常从storyboard)
  2. awakFromNib(只有从storyboard中实例化的VC会调用)
  3. segue点击事件的准备
  4. outlets被设置
  5. viewDidLoad
  6. viewWillAppear & viewDIdAppear
  7. viewWillDisappear & viewDidDisappear

1. viewDIdLoad

viewDIdLoad

2. viewWillAppear

image.png

3. viewDIdAppear

viewDIdAppear.png

4. viewWillDisappear

viewWillDisappear.png

5. viewDidDisappear

viewDidDisappear.png

6. viewWillLayoutSubviews() && viewDidLayoutSubviews()

viewWillLayoutSubviews() && viewDidLayoutSubviews() .png

7 didReceiveMemoryWarning

image.png

8. awakFromNib

awakFromNib

设置自定义开始ViewController的步骤

  1. 删除storyboard中的默认控制器和原始ViewController
  2. 自定义创建ViewController(假设叫imageViewController), 并在Main.storyboard中拖出一个新的ViewController,将脱出的ViewController的类型设置为imageViewController
  3. 将这个imageViewController设置为初始的ViewController(右边initial ViewController 打勾)

设置自定义开始ViewController的步骤

  1. 删除storyboard中的默认控制器和原始ViewController
  2. 自定义创建ViewController(假设叫imageViewController), 并在Main.storyboard中拖出一个新的ViewController,将脱出的ViewController的类型设置为imageViewController
  3. 将这个imageViewController设置为初始的ViewController(右边initial ViewController 打勾)

如何确保view正在屏幕上?

do catch

do {
    let urlContents = try Data(contentsOf: url)
    // 利用try做网络请求,可能返回失败(网络链接不好,断网的诸多原因)
} else let error {
    // 这里来捕捉失败
}
------------------------------------------------------------------------
     let urlContents = try? Data(contentsOf: url)
    //try? 代表尝试这个操作,如果返回失败,只需要返回nil
    //所以这里的urlContents的类型是,Data?

UIImage的两种初始化方式

UIScrollView

func viewForZooming(in scrollView:UIScrollVIew)-> UIView? {
  //  返回你需要在scrollView中缩放的View
  return imageView
}

sizeToFit()

如何利用computed var 去优化代码

 private var image:UIImage? {
   get {
    return imageView.image
   }
   set {
    imageView.image = newValue
    imageView.sizeToFit()
    scrollView.contentSize = imageView.frame.size
  }
}
上一篇 下一篇

猜你喜欢

热点阅读