斯坦福Developing iOS 8 Apps学习笔记(四)

ViewController Life Cycle

  1. awakeFromNib
  2. prepare for segue
  3. outlet etting
  4. ViewDidLoad
  5. appear and disappear
  6. Geometry changes
  7. Low-memory situations

viewDidLoad


  • 初始化视图代码
  • update UI from Model

注意:geometry is not yet set

viewWillAppear

  • 网络任务不要在viewDidLoad而是viewWillAppear
  • geometry is set

viewDidAppear

viewWillDisappear

  • do some cleanup & “remember what’s going on”
  • Do not do anything time-consuming

viewDidDisappear

Geometry change 99% handled with AutoLayout

  • viewWillLayoutSubviews()
  • viewDidLayoutSubviews()
  • setNeedsLayout()

Autorotation

  • viewWillTransitionToSize(size: CGSize, withTransitionCoordinator: UIViewControllerTransitionCoordinator)

didReceiveMomoryWarning

awakeFromNib

  • sent to all objects that come out of a storyboard
  • Happens before outlets are set(before MVC coded)
  • Put code somewhere else if at all possible
  • Great to set delegate

AutoLayout & Size Classes

设备PortraitLandscape
iPhone6+宽:C 长:R宽:R 长:C
iPhone non-6+宽:C 长:R宽:C 长:C
iPad宽:R 长:R宽:R 长:R
iPad Split-master宽:C 长:R宽:C 长:R

- 获取SizeClasses的方式

let mySizeClasses:UIUserInterfaceSizeClasses = self.traitCollection.horizontalSizeClass
  • UIUserInterfaceSizeClasses
    • .Compact
    • .Regular
    • .Unspecified

Autolayout主要在Storyboard中设置,如果要使用代码

NSLayoutConstraint(item:Anyobject, attribute:NSLayoutAttribute, relatedBy:NSLayoutRelation, toItem:Anyobject?, attribute:NSLayoutAttribute, multiplier:CGFloat, constant:CGFloat)

注意:Storyboard中AutoLayout非常重要的的两个概念
Compress压缩,数值越大代表越不希望被压缩
Hug代表有多不希望扩张,如按钮hugging priority高,textField在horizontal中希望扩张,在verital不希望扩张

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值