iOS masonry的使用方法
iOS masonry的基本使用
前言:
在寫(xiě)OC的UI時(shí),當(dāng)在不同的機(jī)型上運(yùn)行時(shí),如果只用frame則會(huì)導(dǎo)致視圖中的控件嚴(yán)重變形,這是因?yàn)椴煌瑱C(jī)型的屏幕大小不一樣,所以這周學(xué)習(xí)了masonry,掌握了一些基本用法。在使用第三方庫(kù)Masonry之前,需要先安裝CocoaPods。
一、CocoaPods的安裝
安裝好后,創(chuàng)建一個(gè)工程“test2”,創(chuàng)建結(jié)束后在終端輸入以下代碼:
cd /Users/haoqianbiao/Desktop/test2 //文件的路徑
然后在終端輸入:
touch PodFile
之后我們的文件里就多了一個(gè)Podfile的文件

然后在該文件里輸入:
platform :ios, '7.0' target 'test2' do pod 'Masonry' end //target后面的單引號(hào)里是你工程的名字
最后一步是在終端讀取PodFile找到相關(guān)類庫(kù)下載并自動(dòng)集成到項(xiàng)目中,同時(shí)生成新的*.xcworkspace文件:
之后就直接打開(kāi)xcworkspace文件進(jìn)行編程就可以了。
二、Masonry的基本使用
1、三個(gè)約束和基礎(chǔ)API
/添加新約束 - (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block; //更新約束,會(huì)覆蓋之前的約束 - (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block; //完全移除舊約束,添加新約束(重置) - (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block; equalTo() 參數(shù)是對(duì)象類型,一般是視圖對(duì)象或者mas_width這樣的坐標(biāo)系對(duì)象 mas_equalTo() 和上面功能相同,參數(shù)可以傳遞基礎(chǔ)數(shù)據(jù)類型對(duì)象,可以理解為比上面的API更強(qiáng)大 width() 用來(lái)表示寬度,例如代表view的寬度 mas_width() 用來(lái)獲取寬度的值。和上面的區(qū)別在于,一個(gè)代表某個(gè)坐標(biāo)系對(duì)象,一個(gè)用來(lái)獲取坐標(biāo)系對(duì)象的值
示例:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
UILabel* label = [[UILabel alloc] init];
[self.view addSubview:label];
[label mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.view);
make.top.equalTo(self.view).offset(100);
make.size.mas_equalTo(CGSizeMake(200, 50));
}];
label.backgroundColor = [UIColor blackColor];
UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
[self.view addSubview:button];
[button mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(label);
make.top.equalTo(label.mas_bottom).offset(100);
make.size.mas_equalTo(CGSizeMake(200, 50));
}];
[button setBackgroundColor:[UIColor yellowColor]];
[button setTitle:@"更新約束" forState:UIControlStateNormal];
[button addTarget:self action:@selector(press:) forControlEvents:UIControlEventTouchUpInside];
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
}
-(void) press:(UIButton*) btn {
[btn mas_updateConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(100, 100));
}];
}
效果:


到此這篇關(guān)于iOS masonry的使用方法的文章就介紹到這了,更多相關(guān)iOS masonry的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
iOS基礎(chǔ)知識(shí)之@property 和 Ivar 的區(qū)別
這篇文章主要介紹了iOS基礎(chǔ)知識(shí)之@property 和 Ivar 的區(qū)別介紹,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08
iOS sqlite對(duì)數(shù)據(jù)庫(kù)的各種操作(日常整理全)
在IOS中使用Sqlite來(lái)處理數(shù)據(jù)。如果你已經(jīng)了解了SQL,那你可以很容易的掌握SQLite數(shù)據(jù)庫(kù)的操作。本文給大家介紹iOS sqlite對(duì)數(shù)據(jù)庫(kù)的各種操作,需要的朋友參考下吧2016-03-03
Swift中的HTTP請(qǐng)求體Request Bodies使用示例詳解
這篇文章主要為大家介紹了Swift中的HTTP請(qǐng)求體Request Bodies使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
iOS中自動(dòng)實(shí)現(xiàn)對(duì)象序列化的方法詳解
這篇文章主要給大家介紹了在iOS中自動(dòng)實(shí)現(xiàn)對(duì)象序列化的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05
iOS開(kāi)發(fā)中UIImageView控件的常用操作整理
這篇文章主要介紹了iOS開(kāi)發(fā)中UIImageView控件的常用操作整理,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-01-01
iOS開(kāi)發(fā)避免安全隱患的要點(diǎn)總結(jié)
在本篇文章里小編給各位整理了關(guān)于iOS開(kāi)發(fā)如何避免安全隱患的知識(shí)點(diǎn)總結(jié),需要的朋友們學(xué)習(xí)下。2019-07-07
配置iOS?16?屏幕旋轉(zhuǎn)適配實(shí)例詳解
這篇文章主要為大家介紹了配置iOS?16?屏幕旋轉(zhuǎn)適配實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09

