ios之UI布局篇

UI布局分为如下几种
1.frame

  1. Autolayout VFL(Visual Format Language)
    3.SB
    4.Masonry/Snapkit 链式语法
    5.Yoga
  2. SizeClass

Autolayout里有两个词,约束,参照
要想显示一个控件,需要两个东西,位置,尺寸
添加约束不宜过多,当添加的约束足以表达该控件的位置与尺寸,就足够了
约束就是对控件的大小或者位置进行约束,参照就是以某个控件的位置进行约束,其实这两者没有明确的分别,它们都可以对控件的位置与尺寸起到作用。
所有控件,都逃不开位置,尺寸,Autolayout就是拿来干这个用的,所以我后面的例子都以UIView为例

Masonry必须要把控价添加到父视图以后才可以进行布局,不然会crash
内存管理,约束的block里面有时候会引起隐式内存泄露
偶尔会遇见重复约束的问题,查看控制台log,进行调整修改
重点在于,给出的约束一定要能计算出控件的位置和大小,缺一不可
有时候给出的约束可能没有明确指出某个约束的值,但是可以通过给定条件计算出来,也是可以的,比如下面这个例子,做一个水平三等分

记住一个快捷键command + option + ‘=‘(update constraint constant)

SB/xib多人开发的问题

SafeArea
在Xcode 7之前,storyboard在团队开发的时候非常不友好,因为一个storyboard文件有很多个界面,多人开发的话,就需要多个人都打开这个storyboard文件,而在Xcode 7之前你只要点开storyboard文件,虽然你啥都没有做,但是storyboard文件里面出现一个Modify标记,然后你提交代码的时候会conflict,很多团队因为这个问题放弃storyboard,转而使用xib,甚至连xib都不用了,直接手撸.

只从Xcode 7以后,苹果针对这个问题推出了storyboard reference来解决storyboard的多人开发问题

storyboard reference的功能就是拆分storyboard,把storyboard拆分成一个个小模块,这样每个开发人员对应一个模块,各自分离,互不相干

代码加载SB,需要再SB中设置identity usestoryboard id

有很多人说在维护xib/storyboard开发的项目的时候有些困难,找不到view关系,看不到代码等,其实我想说,那是因为你真的没有用心的去学习xib/storyboard,如果作为维护者的你也对xib/storyboard非常熟悉,你会发现维护xib/storyboard开发的项目会比纯代码的相对轻松的,至少你不需要在1000+的代码中去找某个button添加的action;

你可能感兴趣的:(ios之UI布局篇)