Autolayout之 关于+requiresConstraintBasedLayout方法作用

�看到很多Autolayout�写的自定义控件中都实现了+requiresConstraintBasedLayout方法,一直不知道这个方法有什么用,因为不实现这个方法也没发现有什么影响。经过查找资料,有解释如下:

constraint-based layout engages lazily when someone tries to use it (e.g., adds a constraint to a view). If you do all of your constraint set up in -updateConstraints, you might never even receive updateConstraints if no one makes a constraint. To fix this chicken and egg problem, override this method to return YES if your view needs the window to use constraint-based layout.

意思就是基于约束的布局是懒触发的,只有在添加了约束的情况下,系统才会自动调用 -updateConstraints 方法,如果把所有的约束放在 updateConstraints中,那么系统将会不知道你的布局方式是基于约束的,所以 重写+requiresConstraintBasedLayout 返回YES就是明确告诉系统:虽然我之前没有添加约束,但我确实是基于约束的布局!这样可以保证系统一定会调用 -updateConstraints 方法 从而正确添加约束.

参考文章:The Mystery of the +requiresConstraintBasedLayout

推荐阅读更多精彩内容

  • // //UIView.h //UIKit // //Copyright (c) 2005-2015 Apple ...
    李某lkb阅读 875评论 0 0
  • 很多人其实嘴上喊着自信自信,其实他们并不自信,他们通常很“他信”。什么是自信,什么是他信呢? 自信,就是把自我价值...
    alabiubiubiu阅读 173评论 0 1
  • 以苦难为船,以泪为帆,心似离弦箭 莫说天无涯 海无岸 纵然归程须万载 今日归来不晚 与故人重来 天真作少年 昨天乐...
    妧臻阅读 40评论 0 0
  • 一、公仪休另类的“严于律己” 1、人物:鲁国名人公仪休,学问很大。 2、职位:鲁国的总理。 3、名声:《史记•循吏...
    祥和鸿泰阅读 50评论 0 2