Masonry remake更新約束


前言

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

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

效果圖

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

image

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

核心代碼

看下代碼:

講解

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

這里展開與收起的關鍵代碼在這里:

想要更新約束時添加動畫,就需要調用關鍵的一行代碼:setNeedsUpdateConstraints,這是選擇對應的視圖中的約束需要更新。

對於updateConstraintsIfNeeded這個方法並不是必須的,但是有時候不調用就無法起到我們的效果。但是,官方都是這么寫的,從約束的更新原理上講,這應該寫上。我們要使約束立即生效,就必須調用layoutIfNeeded此方法。看下面的方法,就是動畫更新約束的核心代碼:


免責聲明!

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



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