iOS|iOS 小知识

关于layoutSubviews在以下情况下会被调用

  • init初始化不会触发layoutSubviews
  • addSubview会触发layoutSubviews
  • 设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
  • 滚动一个UIScrollView会触发layoutSubviews
  • 旋转Screen会触发父UIView上的layoutSubviews事件
  • 改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
关于tableView方法的调用顺序
  • numberOfSectionsInTableView: 显示多少组(UITableViewDataSource)
  • tableView:heightForHeaderInSection: 组头高度(UITableViewDelegate)
  • tableView:heightForFooterInSection: 组尾高度(UITableViewDelegate)
  • tableView:numberOfRowsInSection: 每组显示多少行(UITableViewDataSource)
  • tableView:heightForRowAtIndexPath: 每行高度(UITableViewDelegate)
  • tableView:cellForRowAtIndexPath: 每行显示的cell(UITableViewDataSource)
  • 以上方法会执行多次,以下方法只执行一次
  • tableView:titleForHeaderInSection: 组头内容(UITableViewDataSource)
  • tableView:titleForFooterInSection: 组尾内容(UITableViewDataSource)
关于UIView生命周期
  1. willMoveToSuperview:
  2. didMoveToSuperview:
  3. willMoveToWindow:
  4. didMoveToWindow:
  5. layoutSubviews:
【iOS|iOS 小知识】以上方法是view生成时调用顺序,以下方法是view 被释放时的调用顺序
  1. willMoveToWindow:
  2. didMoveToWindow
  3. willMoveToSuperview:
  4. didMoveToSuperview
  5. removeFromSuperview
  6. dealloc

    推荐阅读