(一)系统原生态:NSLayOutconstrants:基本语法就是哪个控件的谁基于那个控件的谁的距离是多少。比较难用,太长了。
(二)VFL:可视化语言,也比较难用,原生态。
(三)Autoresizing:只能以父类作为参照,设置autoReszingMask属性,想要使用这个,还必须关闭autoLayOut,感觉也很难用。
(四)Autolayout:可以用任何控件做约束。通过约束帮我们计算控制的frame。所以用这个一般不要自己在计算frame了。
在SB中约束会有提示: 黄色:控件frame和约束不符合。 红色:约束冲突,或者缺少必要的约束。
(五)SnipKit:在Swift中的不二之选,炒鸡好用。
view.addSubview(textView) textView.snp_makeConstraints { (make) in make.edges.equalTo(self.view) } view.addSubview(composeTabBar) composeTabBar.snp_makeConstraints { (make) in make.bottom.leading.trailing.equalTo(self.view) make.height.equalTo(40) } textView.addSubview(pictureView) pictureView.snp_makeConstraints { (make) in // 距离上面100,先固定宽高 make.top.equalTo(100) make.size.equalTo(CGSizeMake(SCREENW - 20, SCREENW - 20)) make.leading.equalTo(10) }
(六)Masonry:OC中的不二之选,炒鸡好用。和snp用法一样,为啥呢。。同一群人做的吧。。
(七)AutoLayOut动画:因为自动布局时候一般不要修改frame了,所以修改的都是约束。constraint。但是修改后是无法改变的,这时候应该先修改约束,再在动画里面调用self.view layoutIfNeed来强行改变全部布局。
(八)SB创建后有个Use Size Classes属性,这个只是对屏幕进行分类,点击后就会出现九宫格,可以选择甚至是pad的尺寸。