swift 系統自帶的約束使用


項目中可能需要代碼做約束,大家一般都使用三方的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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM