簡介

MyLayout是一套iOS界面視圖布局框架。其內核是基于對UIView的layoutSubviews方法的重載以及對子視圖的bounds和center屬性的設置而實現(xiàn)的。MyLayout功能強大而且簡單易用,它集成了iOS Autolayout和Size Classes、android的5大布局體系、HTML/CSS的浮動定位技術以及flex-box和bootstrap框架等市面上主流的平臺的界面布局功能,同時提供了一套非常簡單和完備的多屏幕尺寸適配的解決方案。MyLayout還提供了Swift版本TangramKit

MyLayout的優(yōu)勢

  • MyLayout的實現(xiàn)內核是基于frame的設置,而不是對AutoLayout的封裝。因此在使用上不會受到任何操作系統(tǒng)版本的限制。

  • 有文章表明用frame進行布局的性能要高于用AutoLayout進行布局的性能,尤其是當界面內視圖數(shù)量增加時效果更加明顯。

  • AutoLayout的思想是通過視圖之間的約束依賴來完成布局,但是約束依賴的結果是造成視圖之間的耦合性高而增大了界面更新的成本。而MyLayout則除了提供約束依賴外,還提供了根據(jù)視圖添加順序自動建立約束的功能,從而減少了這種顯示依賴關系建立的問題,最終的結果是簡化了布局的代碼量,以及減少了布局更新時的代碼修改量。

  • AutoLayout只是一種相對約束的布局,而MyLayout除了同時提供具有和AutoLayout相同能力的相對布局外、還提供了線性布局、框架布局、表格布局、流式布局、浮動布局、路徑布局7大布局體系,你完全可以根據(jù)你的界面需求來選擇一種最簡易的布局容器來實現(xiàn)你的功能,同時MyLayout還支持Size classes的機制,以及提供了一些實現(xiàn)屏幕尺寸完美適配的方法。

  • MyLayout主要是一種通過代碼進行布局的解決方案,但是框架一樣可以支持和XIB以及SB結合布局的方式。并提供了視圖隱藏和顯示時會自動激發(fā)布局、布局視圖的高度自適應(UITableviewCell動態(tài)高度)、標簽云實現(xiàn)、左右內容寬度自適應、按比例分配尺寸和間距、整體停靠控制等等各種強大的功能。

AutoLayout和frame布局的性能比較