自动布局

Posted 三更小新

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动布局相关的知识,希望对你有一定的参考价值。

(一)系统原生态: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的尺寸。

 

以上是关于自动布局的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress - 将代码片段包含到布局的选定部分的插件

有没有更聪明的方法将布局绑定到片段?

android片段表格布局

重新创建片段布局

片段布局不覆盖整个屏幕

如何实现具有不同片段/布局的 ViewPager