Masonry布局常用方法與屬性

常用方法

設(shè)置view的位置

- (void)initViews{

UIView *view = [UIView new];

[self.view addSubview:view];

[view mas_makeConstraints:^(MASConstraintMaker *make) {

make.edges.equalTo(view.superview).with.insets(UIEdgeInsetsMake(10, 10, 10, 10));

/* 等價(jià)于

make.top.equalTo(sv).with.offset(10);

make.left.equalTo(sv).with.offset(10);

make.bottom.equalTo(sv).with.offset(-10);

make.right.equalTo(sv).with.offset(-10);

*/

/* 也等價(jià)于

make.top.left.bottom.and.right.equalTo(sv).with.insets(UIEdgeInsetsMake(10, 10, 10, 10));

*/

}];

}

設(shè)置view的size

make.size.mas_equalTo(CGSizeMake(40, 40));

更新刪除view的約束

- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block;

- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block;

- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;

/*

mas_makeConstraints 只負(fù)責(zé)新增約束 Autolayout不能同時(shí)存在兩條針對(duì)于同一對(duì)象的約束 否則會(huì)報(bào)錯(cuò)

mas_updateConstraints 針對(duì)上面的情況 會(huì)更新在block中出現(xiàn)的約束 不會(huì)導(dǎo)致出現(xiàn)兩個(gè)相同約束的情況

mas_remakeConstraints 則會(huì)清除之前的所有約束 僅保留最新的約束

三種函數(shù)善加利用 就可以應(yīng)對(duì)各種情況了

*/

mas_equalTo()和equalTo()的區(qū)別

mas_equalTo支持的類型更多

#define mas_equalTo(...)? ? ? ? ? ? ? ? equalTo(MASBoxValue((__VA_ARGS__)))

#define mas_greaterThanOrEqualTo(...)? ? greaterThanOrEqualTo(MASBoxValue((__VA_ARGS__)))

#define mas_lessThanOrEqualTo(...)? ? ? lessThanOrEqualTo(MASBoxValue((__VA_ARGS__)))

#define mas_offset(...)? ? ? ? ? ? ? ? ? valueOffset(MASBoxValue((__VA_ARGS__)))

一個(gè)view

居中

///* 居中

make.size.mas_equalTo(CGSizeMake(100, 60));

make.centerY.equalTo(view.superview.mas_centerY);

make.centerX.equalTo(view.superview.mas_centerX);

// */

多個(gè)view

大小相同

make.width.equalTo(v1.mas_width);

make.height.equalTo(v1.mas_height);

首尾相連

//與v2上下間距為10

make.bottom.mas_equalTo(v2.mas_top).offset(-10);

//與v1左右間距為10

make.left.equalTo(v1.mas_right).offset(10);

同一垂直中線

//與v1的x中心點(diǎn)在同一直線

make.centerX.equalTo(v1.mas_centerX);

示例

- (void)towView{

UIView *v1 = [UIView new];

v1.backgroundColor = [UIColor redColor];

[self.view addSubview:v1];

UIView *v2 = [UIView new];

v2.backgroundColor = [UIColor blackColor];

[self.view addSubview:v2];

[v1 mas_makeConstraints:^(MASConstraintMaker *make) {

make.size.mas_equalTo(CGSizeMake(200, 120));

make.top.mas_equalTo(v1.superview).offset(74);

//與v2上下間距為10

make.bottom.mas_equalTo(v2.mas_top).offset(-10);

make.centerX.equalTo(v1.superview.mas_centerX);

}];

[v2 mas_makeConstraints:^(MASConstraintMaker *make) {

make.size.mas_equalTo(CGSizeMake(250, 30));

make.centerX.equalTo(v1.mas_centerX);

/*和v1的寬高相等

make.width.equalTo(v1.mas_width);

make.height.equalTo(v1.mas_height);

//*/

make.top.mas_equalTo(v1.mas_bottom).offset(10);

make.bottom.mas_equalTo(v2.superview).offset(-10);

}];

}

九宮格排序

- (void)squaredUp{

NSMutableArray *array? =? [NSMutableArray array];

for (int i = 0; i<14; i++) {

[array addObject:[NSString stringWithFormat:@"%d",i]];

}

__block UIView *lastV = nil;

int list = 4;

int gap = 10;

for (int i = 0; i

UILabel *label = [UILabel new];

label.text = array[i];

[self.view addSubview:label];

label.textAlignment = NSTextAlignmentCenter;

label.backgroundColor = [UIColor magentaColor];

[label sizeToFit];

[label mas_makeConstraints:^(MASConstraintMaker *make) {

if (lastV) {

make.width.equalTo(lastV.mas_width);

}else

make.size.mas_equalTo(CGSizeMake((self.view.frame.size.width - gap*(list + 1))/list, 20));

if (i%list == 0) {

make.left.equalTo(label.superview).offset(gap);

}

else{

make.left.equalTo(lastV.mas_right).offset(gap);

}

if (i%list == (list -1)) {

make.right.equalTo(label.superview).offset(-gap);

}

int top = 64+(i/list+1)*gap+(i/list*label.frame.size.height);

make.top.equalTo(label.superview).offset(top);

lastV = label;

}];

}

}

不規(guī)則標(biāo)簽排序

參考:http://adad184.com/2014/09/28/use-masonry-to-quick-solve-autolayout/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蟆湖,一起剝皮案震驚了整個(gè)濱河市详民,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秸谢,老刑警劉巖靠抑,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件量九,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡颂碧,警方通過(guò)查閱死者的電腦和手機(jī)荠列,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)载城,“玉大人肌似,你說(shuō)我怎么就攤上這事∷咄撸” “怎么了川队?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)睬澡。 經(jīng)常有香客問(wèn)我固额,道長(zhǎng),這世上最難降的妖魔是什么猴贰? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮河狐,結(jié)果婚禮上米绕,老公的妹妹穿的比我還像新娘瑟捣。我一直安慰自己,他們只是感情好栅干,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布迈套。 她就那樣靜靜地躺著,像睡著了一般碱鳞。 火紅的嫁衣襯著肌膚如雪桑李。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天窿给,我揣著相機(jī)與錄音贵白,去河邊找鬼。 笑死崩泡,一個(gè)胖子當(dāng)著我的面吹牛禁荒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播角撞,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼呛伴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了谒所?” 一聲冷哼從身側(cè)響起热康,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎劣领,沒(méi)想到半個(gè)月后姐军,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剖踊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年庶弃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片德澈。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡歇攻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出梆造,到底是詐尸還是另有隱情缴守,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布镇辉,位于F島的核電站屡穗,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏忽肛。R本人自食惡果不足惜村砂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屹逛。 院中可真熱鬧础废,春花似錦汛骂、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至蒿讥,卻和暖如春蝶念,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芋绸。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工媒殉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人侥钳。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓适袜,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親舷夺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子苦酱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一、前言 關(guān)于蘋(píng)果的布局一直是我比較糾結(jié)的問(wèn)題给猾,是寫(xiě)代碼來(lái)控制布局疫萤,還是使用storyboard來(lái)控制布局呢?以前...
    iplaycodex閱讀 2,452評(píng)論 0 1
  • 前言 1 MagicNumber -> autoresizingMask -> autolayout 以上是純手寫(xiě)...
    橙娃閱讀 430評(píng)論 0 1
  • (一)Masonry介紹 Masonry是一個(gè)輕量級(jí)的布局框架 擁有自己的描述語(yǔ)法 采用更優(yōu)雅的鏈?zhǔn)秸Z(yǔ)法封裝自動(dòng)布...
    木易林1閱讀 2,338評(píng)論 0 3
  • Masonry是一個(gè)輕量級(jí)的布局框架敢伸,擁有自己的描述語(yǔ)法扯饶,采用更優(yōu)雅的鏈?zhǔn)秸Z(yǔ)法封裝自動(dòng)布局,簡(jiǎn)潔明了并具有高可讀性...
    3dcc6cf93bb5閱讀 1,768評(píng)論 0 1
  • 如果以上內(nèi)容你有興趣池颈,請(qǐng)點(diǎn)擊下面的鏈接跳轉(zhuǎn)到我的為知筆記云端進(jìn)行閱讀尾序,圖文并茂,希望對(duì)你有用躯砰。 fromwiz.c...
    百萬(wàn)雄師過(guò)大江閱讀 661評(píng)論 0 10