Masonry 比例(multipliedBy)


前言

說到iOS自動布局,有很多的解決辦法。有的人使用xib/storyboard自動布局,也有人使用frame來適配。對於前者,筆者並不喜歡,也不支持。對於后者,更是麻煩,到處計算高度、寬度等,千萬大量代碼的冗余,對維護和開發的效率都很低。

筆者在這里介紹純代碼自動布局的第三方庫:Masonry。這個庫使用率相當高,在全世界都有大量的開發者在使用,其star數量也是相當高的。

效果圖

本節詳解Masonry的以動畫的形式更新約束的基本用法,先看看效果圖:

image

我們這里初始按鈕是一個很小的按鈕,點擊就不斷放大,最大就放大到全屏幕。

核心代碼

看下代碼:

講解

移除之前的所有約束,然后添加新約束的方法是:mas_remakeConstraints

我們的目標是點擊時,將里面的往外面,外面的往里面,並且顯示動畫效果。其中,最關鍵的代碼是:

提示:使用multipliedBy必須是對同一個控件本身,比如,上面的代碼中,我們都是對bottomInnerView.mas_width本身的,如果修改成相對於其它控件,會出問題。

我們就說說bottomInnerView的約束如何添加。 我們希望width/height比為1/3.0,首先,我們設置了其topbottom與父視圖一致且始終在父視圖中居中顯示:

然后我們通過make.width.height.lessThanOrEqualTo設置了寬、高的最大值與父視圖相同,然后設置了寬和高與父視圖相等,但是優先級為最低,以保證子視圖的寬高不超過父視圖。

最后,我們設置了bottomInnerView的高為寬的3倍。


免責聲明!

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



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