Masonry使用注意篇

2022-09-08 17:21:15 字數 2347 閱讀 1252

簡要

自動布局最重要的是約束:ui元素間關係的數學表示式。約束包括尺寸、由優先順序和閾值管理的相對位置。它們是新增劑,可能導致約束衝突 、約束不足造成布局無法確定 。這兩種情況都會產生異常。

使用前:autolayout關於更新的幾個方法的區別

使用1. 基本使用

// 這裡注意到乙個地方,就是當使用了這個全域性巨集定義之後,發現可以有個類`nsarray+masadditions.h`,看了之後發現可以

self.buttonviews = @[ raisebutton, lowerbutton, centerbutton ];

// 之後可以在updateconstraints 方法中

- (void)updateconstraints ];

[super updateconstraints];

}

// 已經確認好了位置

// 在layoutsubviews中確認label的preferredmaxlayoutwidth值

- (void)layoutsubviews

// 1. 控制scrollview大小(顯示區域)

[self.scrollview makeconstraints:^(masconstraintmaker *make) ];

// 2. 新增乙個contentview到scrollview,並且新增好約束條件

[contentview makeconstraints:^(masconstraintmaker *make) ];

// 3. 對contentview的子控制項做好約束,達到可以控制contentview的大小

/**

* 多個控制項固定間隔的等間隔排列,變化的是控制項的長度或者寬度值

* * @param axistype 軸線方向

* @param fixedspacing 間隔大小

* @param leadspacing 頭部間隔

* @param tailspacing 尾部間隔

*/- (void)mas_distributeviewsalongaxis:(masaxistype)axistype

withfixedspacing:(cgfloat)fixedspacing l

eadspacing:(cgfloat)leadspacing

tailspacing:(cgfloat)tailspacing;

/** * 多個固定大小的控制項的等間隔排列,變化的是間隔的空隙

* * @param axistype 軸線方向

* @param fixeditemlength 每個控制項的固定長度或者寬度值

* @param leadspacing 頭部間隔

* @param tailspacing 尾部間隔

*/- (void)mas_distributeviewsalongaxis:(masaxistype)axistype

withfixeditemlength:(cgfloat)fixeditemlength

leadspacing:(cgfloat)leadspacing

tailspacing:(cgfloat)tailspacing;

使用方法很簡單,因為它是nsarray的類擴充套件:

//  建立水平排列圖示 arr中放置了2個或連個以上的初始化後的控制項

// alongaxis 軸線方向 固定間隔 頭部間隔 尾部間隔

[arr mas_distributeviewsalongaxis:masaxistypehorizontal withfixedspacing:20 leadspacing:5 tailspacing:5];

[arr makeconstraints:^(masconstraintmaker *make) ];

2. 注意事項

// 呼叫在view 內部,而不是viewcontroller

+ (bool)requiresconstraintbasedlayout

/** * 蘋果推薦 約束 增加和修改 放在此方法種

*/- (void)updateconstraints ];

//最後記得**super方法

[super updateconstraints];

}

Masonry使用注意事項

1.用mas makeconstraints的那個view需要在addsubview之後才能用這個方法 2.mas equalto適用數值元素,equalto適合多屬性的比如make.left.and.right.equalto self.view 3.方法and和with只是為了可讀性,返回自身,...

Masonry使用小結

推薦使用pod進行管理安裝 開啟終端,pod search masonry 得到當前可用版本 進入工程主目錄,編輯podfile,增加 pod masonry 在終端進入工程主目錄,執行 pod update 含義mas makeconstriaints 新增約束 mas updateconstri...

Masonry 簡單使用

magicnumber autoresizingmask autolayout 以上是純手寫 所經歷的關於頁面布局的三個時期 在iphone1 iphone3gs時代 window的size固定為 320,480 我們只需要簡單計算一下相對位置就好了 在iphone4 iphone4s時代 蘋果推出...