標籤:
如題,今天的任務是Nasonry介紹與使用實踐:快速上手Autolayout & 自己App項目的適配 & 遇到的問題及解決方案。
Tips: .h與.m檔案之間的切換快速鍵 control + command + 上下鍵
Tips:如何在Xib中設定Button的屬性(圓角以及背景顏色)。Inspector -- User Defined Runtime Attributes -- layer.cornerRadius & Number & 10
9月14號更新--好吧,上周五的任務成功延遲到了今天,今天咱們來會會它。
//mas_makeConstraints 只負責新增約束 Autolayout不能同時存在兩條針對於同一對象的約束 否則會報錯 - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block; //mas_remakeConstraints 則會清除之前的所有約束 僅保留最新的約束 - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block; //mas_updateConstraints 針對上面的情況 會更新在block中出現的約束 不會導致出現兩個相同約束的情況 - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;
首先是如何在項目中引用第三方庫的檔案。即使用cocoaPods import匯入時沒有提示的解決辦法:
選擇target--> User Header Search Paths -->在後面的空白處點擊。左側的寫入 $(PODS_ROOT) -- >後面的選擇rucursive。即可。
好了,可以調用了。
問了下大神,技能get時間。
比如說我如果想把這張圖片放在sele.view的中心,然後距離top50像素處,那麼代碼應該這麼寫。
UIImageView *heads = [[UIImageView alloc] init]; heads.layer.masksToBounds = YES; heads.layer.cornerRadius = 27;//圓角半徑? [heads setImage:[UIImage imageNamed:@"user_head"]]; [self.view addSubview:heads]; [heads mas_makeConstraints:^(MASConstraintMaker *make){ make.top.equalTo(self.view).with.offset(30); make.centerX.equalTo(self.view); }];
這裡需要注意的是,自動布局是相對於superView和兄弟view的,不能相對自己來布局
所以代碼中括弧裡面的是self.view,而不是heads。
---2015-09-15更新
上面所說的三種方法,昨天只用到了其中一種,即mas_makeConstraints。
估計自己只摸索著更表面的東西。上一個例子吧。
[loginButton mas_makeConstraints:^(MASConstraintMaker *make){ make.left.right.and.width.equalTo(self.view); make.top.equalTo(centerLabel.mas_bottom).with.offset(30); make.height.equalTo(@50); }];
像這種特別簡單,只需要記住一點,Masonry實現的autolayout這種布局方式是相對於superView以及它的兄弟view的,千萬不能想對自己來布局。
iOS Masonry介紹與使用實踐:快速上手Autolayout