對于新手來說丰包,還是學(xué)習(xí)Masonry框架進(jìn)行布局比較好禁熏,畢竟這個框架使用的人群基數(shù)較大壤巷。
一、首先兩句話介紹一下這個框架:
1瞧毙、Masonry是一個輕量級的布局框架 擁有自己的描述語法 采用更優(yōu)雅的鏈?zhǔn)秸Z法封裝自動布局 簡潔明了 并具有高可讀性 而且同時支持 iOS 和 Max OS X胧华。
2、添加約束的條件主要是利用block模塊
二宙彪、Masonry支持的一些屬性如下屬性:
注意:其中l(wèi)eading與left trailing與right 在正常情況下是等價的 但是當(dāng)一些布局是從右至左時(比如阿拉伯文?沒有類似的經(jīng)驗) 則會對調(diào) 換句話說就是基本可以不理不用 用left和right就好了
三矩动、具體的使用步驟
1、首先释漆,創(chuàng)建視圖控件悲没,添加到self.view上,(PS:以下以我自己創(chuàng)建的self.firstView為例)
例如:
[self.view addSubview:self.firstView];
- (UIView *)firstView{
if (_firstView == nil) {
_firstView = [[UIView alloc]init];
_firstView.backgroundColor = [UIColor orangeColor];
}
return _firstView;
}
2男图、將AutoresizingMask布局關(guān)掉
self.firstView.translatesAutoresizingMaskIntoConstraints = NO;
3示姿、接著添加約束條件
__weak __typeof(self) weakSelf = self;//這里用一個弱引用來表示self,用于下面的Block中逊笆,會循環(huán)引用(若不用目前也沒發(fā)現(xiàn)問題栈戳。)
[self.firstView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(weakSelf.view.mas_left).offset(16);//使得左邊等于sele.view的左右,間距為16
make.top.equalTo(weakSelf.view.mas_top).offset(48);//使得頂部與sele.view的間距為48
make.width.equalTo(weakSelf.view.mas_width).multipliedBy(0.5);//設(shè)置寬度為self.view的一半难裆,multipliedBy倍數(shù)的意思子檀,這里是self.view寬度的0.5倍
make.height.equalTo(weakSelf.view.mas_height).multipliedBy(0.25);//設(shè)置高度為self.view的0.25倍
}];
約束條件的設(shè)置根據(jù)相對于的屬性進(jìn)行相關(guān)聯(lián),其他的控件的約束如上述一般大抵是以上的類似編寫的約束乃戈。
最后的效果圖如下:
以上褂痰。