iOS--使用AutoLayout--PureLayout來簡(jiǎn)化操作

之前寫過兩篇文章:iOS: 在代碼中使用Autolayout (1) – 按比例縮放和優(yōu)先級(jí)iOS: 在代碼中使用Autolayout (2) – intrinsicContentSize和Content Hugging Priority講述在iOS中使用代碼來寫Autolayout,讀者可以看到,用代碼寫Autolayout是比較枯燥且容易出錯(cuò)的。當(dāng)然也有很多代替方法,比如蘋果官方的Visual Format Language,還有一些重量級(jí)的工程比如Masonry,這里介紹一個(gè)輕量的,支持iOS和OS X的工程PureLayout,之所以輕量是因?yàn)镻ureLayout沒有再加入一套自己的語法,而是以Category的形式輔助蘋果已有的NSLayoutConstraint那套東西,體積小,寫起來更底層同時(shí)也不乏可讀性。

比如上文中的簡(jiǎn)單的兩個(gè)黃色方塊的程序,用PureLayout寫更快捷。

首先,把PureLayout源代碼加入到工程中,或者用CocoaPods安裝(podilfe中加pod 'PureLayout')。

然后加一個(gè)創(chuàng)建View的輔助函數(shù):

- (UIView*)createView {
//有Autolayout不需要設(shè)置frame
UIView *view = [UIView new];
view.backgroundColor = [UIColor yellowColor];
//不允許AutoresizingMask轉(zhuǎn)換成Autolayout, PureLayout內(nèi)部也會(huì)幫你設(shè)置的。
view.translatesAutoresizingMaskIntoConstraints = NO;

return view;
}

?

viewDidLoad中創(chuàng)建兩個(gè)View,然后用PureLayout的方式加入Autolayout中的Constaint就可以了,代碼非常好理解:

//創(chuàng)建兩個(gè)View
UIView *view1 = [self createView];
UIView *view2 = [self createView];

//addSubview
[self.view addSubview:view1];
[self.view addSubview:view2];

//設(shè)置view1高度為70
[view1 autoSetDimension:ALDimensionHeight toSize:70.0];

//view1和view2都都距離父view邊距為20
ALEdgeInsets defInsets = ALEdgeInsetsMake(20.0, 20.0, 20.0, 20.0);
[view1 autoPinEdgesToSuperviewEdgesWithInsets:defInsets excludingEdge:ALEdgeBottom];
[view2 autoPinEdgesToSuperviewEdgesWithInsets:defInsets excludingEdge:ALEdgeTop];

//兩個(gè)view之間距離也是20
[view2 autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:view1 withOffset:defInsets.bottom];

?

運(yùn)行結(jié)果和上文一樣:

屏幕快照 2013-11-05 下午5.58.45

原文地址:http://www.mgenware.com/blog/?p=2335

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 之前寫過兩篇文章:iOS: 在代碼中使用Autolayout (1) – 按比例縮放和優(yōu)先級(jí)和iOS: 在代碼中使...
    風(fēng)繼續(xù)吹0閱讀 447評(píng)論 0 0
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,087評(píng)論 4 61
  • 項(xiàng)目中有這樣一個(gè)需求,在某帖子里點(diǎn)擊某一條評(píng)論的時(shí)候,彈出對(duì)話框讓用戶選擇是刪除評(píng)論還是回復(fù)評(píng)論,當(dāng)用戶點(diǎn)擊回復(fù)評(píng)...
    SnowDragonYY閱讀 4,754評(píng)論 0 1
  • 海外志愿者項(xiàng)目在大一便有所耳聞,但一直徘徊、猶豫著。到了大二,我終于掙脫了大一的搖擺不定,報(bào)名參加了Aiese...
    Bigkelly閱讀 589評(píng)論 0 1
  • 今天講的這本書, 叫 《有味》。這本書是一個(gè)叫汪建剛的人寫的,哦,對(duì)了,他還有一個(gè)名字,叫汪涵。(汪涵,本名建剛。...
    昂扣王閱讀 921評(píng)論 0 0

友情鏈接更多精彩內(nèi)容