蓝天下的田埂上 阅读(8) 评论(0)

项目中可能需要代码做约束,大家一般都使用三方的Masonry、snapKit(swift使用)等方式,stroyboard就不说了。苹果给我们提供了一套自己的约束封装,其实也挺好的。如果你要写一套框架,或者封装一个类之类的用到了自动布局,那不要再用三方的了。尽可能独立完整,这时候苹果的约束就尤为重要。直接上代码吧!

 

 //两个view

        let blueBlock = UIView()

        let orangeBlock = UIView()

        //这两句必须写

        blueBlock.translatesAutoresizingMaskIntoConstraints = false

        orangeBlock.translatesAutoresizingMaskIntoConstraints = false

        //颜色设置

        blueBlock.backgroundColor = UIColor.blue

        orangeBlock.backgroundColor = .orange

        //和snp一样先加入

        view.addSubview(blueBlock)

        view.addSubview(orangeBlock)

        

        /*

         四个可约束环境

         leadingAnchor

         topAnchor

         widthAnchor

         heightAnchor

         

        此句: equalTo: 相对于谁做约束, constant: 10(意思就是加10)

        此句: .isActive = true //开启这个约束(不可省略,只有开启了才算有意义)

       guide是我写的一个分类属性,可以是相对于safe area 也可以是相对于父视图view

         */

        blueBlock.leadingAnchor.constraint(equalTo: guide.leadingAnchor, constant: 10).isActive = true

        blueBlock.topAnchor.constraint(equalTo: guide.topAnchor, constant: 10).isActive = true

        blueBlock.widthAnchor.constraint(equalToConstant: 100).isActive = true

        blueBlock.heightAnchor.constraint(equalToConstant: 100).isActive = true

到这里第一个view的约束已经做完了,写完试试吧!为了看到相对的效果这里是完整的demo可以下载看看:

https://github.com/caoge9/Cons.git