使用程式碼實現Autolayout的方法
使用程式碼實現Autolayout的方法1
- 建立約束
+(id)constraintWithItem:(id)view1
attribute:(NSLayoutAttribute)attr1
relatedBy:(NSLayoutRelation)relation
toItem:(id)view2
attribute:(NSLayoutAttribute)attr2
multiplier:(CGFloat)multiplier
constant:(CGFloat)c;
* view1 :要約束的控制元件
* attr1 :約束的型別(做怎樣的約束)
* relation :與參照控制元件之間的關係
* view2 :參照的控制元件
* attr2 :約束的型別(做怎樣的約束)
* multiplier :乘數
* c :常量
- 新增約束
- (void)addConstraint:(NSLayoutConstraint *)constraint;
- (void)addConstraints:(NSArray *)constraints;
- 注意
- 一定要在擁有父控制元件之後再新增約束
- 關閉Autoresizing功能
view.translatesAutoresizingMaskIntoConstraints = NO;
使用程式碼實現Autolayout的方法2 - VFL
- 使用VFL建立約束陣列
+ (NSArray *)constraintsWithVisualFormat:(NSString *)format
options:(NSLayoutFormatOptions)opts
metrics:(NSDictionary *)metrics
views:(NSDictionary *)views;
* format :VFL語句
* opts :約束型別
* metrics :VFL語句中用到的具體數值
* views :VFL語句中用到的控制元件
- 使用下面的巨集來自動生成views和metrics引數
NSDictionaryOfVariableBindings(...)
使用程式碼實現Autolayout的方法3 - Masonry
- 使用步驟
- 新增Masonry資料夾的所有原始碼到專案中
- 新增2個巨集、匯入主標頭檔案
// 只要新增了這個巨集,就不用帶mas_字首 #define MAS_SHORTHAND
// 只要新增了這個巨集,equalTo就等價於mas_equalTo
define MAS_SHORTHAND_GLOBALS
// 這個標頭檔案一定要放在上面兩個巨集的後面
import "Masonry.h"
```
- 新增約束的方法
// 這個方法只會新增新的約束
[view makeConstraints:^(MASConstraintMaker *make) {
}];
// 這個方法會將以前的所有約束刪掉,新增新的約束
[view remakeConstraints:^(MASConstraintMaker *make) {
}];
// 這個方法將會覆蓋以前的某些特定的約束
[view updateConstraints:^(MASConstraintMaker *make) {
}];
- 約束的型別
1.尺寸:width\height\size
2.邊界:left\leading\right\trailing\top\bottom
3.中心點:center\centerX\centerY
4.邊界:edges
相關文章
- 純程式碼Autolayout的三種方法
- AutoLayout和程式碼佈局
- 用AutoLayout實現分頁滾動
- AutoLayout 使用詳解
- iOS AutoLayout使用技巧iOS
- AutoLayout 實現固定寬度動態高度的 ScrollViewView
- Masonry介紹與使用實踐:快速上手Autolayout
- UIScrollView中使用AutoLayoutUIView
- 在InterfaceBuilder中使用AutoLayoutUI
- 十行程式碼實現牛頓方法行程
- 5 種使用 Python 程式碼輕鬆實現資料視覺化的方法Python視覺化
- 使用GitHub的Webhooks實現程式碼的自動部署GithubWebHook
- 使用者評論程式碼實現
- 閱讀layim程式碼小記,實現可以更改使用者簽名的方法
- 模擬實現Object.is()方法程式碼例項Object
- javascript模擬實現trim()方法例項程式碼JavaScript
- javascript模擬實現toAarray()方法程式碼例項JavaScript
- 異常值檢測!最佳統計方法實踐(程式碼實現)!⛵
- 使用emscripten實現js直接呼叫C程式碼(emscripten的初探)JSC程式
- 使用簡單的Java程式碼實現酒店管理系統Java
- 使用PHP實現動態代理IP的示例程式碼PHP
- 使用ul li實現的文章列表效果程式碼例項
- 使用jquery實現的清空表單元素程式碼例項jQuery
- 工程座標轉換方法C#程式碼實現C#
- js模擬實現hashCode()方法程式碼例項JS
- 使用SQL實現車流量的計算的示例程式碼SQL
- Promise 程式碼實現Promise
- Android使用程式碼實現關機/重啟Android
- 實現彩色二維碼程式碼實
- Locust 程式碼指令碼實現指令碼
- 10行程式碼實現微信小程式支付功能,使用小程式雲開發實現小程式支付功能(行程微信小程式
- js實現的使用鍵盤操作div位置程式碼例項JS
- 「gRPC」 Gateway的實現程式碼RPCGateway
- javascript實現的放大效果程式碼JavaScript
- 閱讀layim程式碼小記,監聽事件實現方法事件
- UIView中與AutoLayout相關的幾個方法對比UIView
- OutputStreamWriter介紹&程式碼實現和InputStreamReader介紹&程式碼實現
- 使用正則實現 getType方法