autoLayout

注:有学到新知识会不断更新

约束的规则

  • 不可以有冲突的约束,考虑改变优先级或者删除

  • 必须要有完整的约束,宽高(固定的宽高还是距离父控件的相对距离大小),相对位置都必须明确。

  • label这个控件比较特殊,如果添加了约束,不需要添加高度,因为系统会自动包裹,根据文字多少的换行。

  • 兄弟控件之间的约束,应该添加到父控件中,

  • 父子关系之间的约束,应该添加到父控件中

  • 两个没直接关系的控件之间的约束,应该添加到最近的父控件中或者(根)

优先级说明 priority

  • 等于1000为强制约束,为强制约束,添加了后这个约束不会被积压或者消失等。
  • 大于等于750为不可以压缩内容约束,在750-999之间,谁的priority大,哪个约束就起作用,并且内容会拒绝压缩。
  • 小于750,大于等于250效果就是可以挤压内容。

计算公式记录

  • leading 左边 Trailling 右边
  • 关键的公式,点进去一个约束,然后双击,
    • 出现first item(第一个控件),relation(关系,有三种,等于,大于等于,小于等于),second item
    • constant(约束的距离大小),priority(优先级),multipller(乘系数)
  • 约束 : item1.attribute1 = multiplier × item2.attribute2 + constant
  • second item中可以选 左对齐线,中心线,右对齐线

-例如:想要一个控件a保持左边压是父控件中心线的相对约束,可以先随便ctrl拉一个与父控件有联系的约束,然后双击这个约束,在里面将second item中改为center x

  • 意思就是 a控件的leading约束等于父控件center x的坐标 * multipller的系数大小+0,此时所以a左边约束会处于父控件的中心

约束之间的关系

  • equal:就是等于的意思,乘系数
  • less than or equal :当控件小于等于的情况,举个例子,比如label的文字很少,但之前约束的宽度太大,此时如果用小于等于的话,就会当文字很少,约束的宽度就会自动减少到刚好包裹文字。

第三方框架masonry

  • 关于如何安装使用CocoaPods(类库管理工具).可以参考http://blog.csdn.net/eqera/article/details/39312125
  • 添加了define MAS_SHORTHAND 这个宏,以后都不需要写mas_这个前缀,
  • define MAS_SHORTHAND_GLOBALS,自动包装基本数据类型。
  • 大多数通过这个类方法 [obj mas_makeConstraints:]在这个block中写入需要的一些约束。
    • 大部分的形式如:make.约束的类型.mas_equal(这个约束所对应的对象).offset(约束的值)
    • 如果运用乘法或者除法,make.约束类型.equal(这个约束所对应的对象).multipliedBy(比例).offset(约束的值),等于苹果的那个公式:item1.attribute1 = multiplier × item2.attribute2 + constant

错误记录

  • When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to be resolved before the view hierarchy is assembled. Break on -[UIView(UIConstraintBasedLayout)
    _viewHierarchyUnpreparedForConstraint:] to debug.

    • 这个错误有两种情况,第一个最多的是 不按约束规则去添加,比如 父子关系之间的约束,应该添加到父控件中,但是却加到子控件身上去了这种情况会报错,
    • 第二种是添加约束里面的控件还没加入到指定的父控件中。
  • Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want.

    • 这个问题在于没有添加这句代码
      blueView.translatesAutoresizingMaskIntoConstraints = NO;
    • 或者约束与宽度超出了屏幕,不合理的约束
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容