使用程式碼實現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實現分頁滾動
- iOS AutoLayout使用技巧iOS
- 5 種使用 Python 程式碼輕鬆實現資料視覺化的方法Python視覺化
- 使用GitHub的Webhooks實現程式碼的自動部署GithubWebHook
- 使用者評論程式碼實現
- 使用 Upsource 實現程式碼審查 - jetbrains 系列AI
- 「gRPC」 Gateway的實現程式碼RPCGateway
- 使用SQL實現車流量的計算的示例程式碼SQL
- 使用emscripten實現js直接呼叫C程式碼(emscripten的初探)JSC程式
- 使用PHP實現動態代理IP的示例程式碼PHP
- 使用簡單的Java程式碼實現酒店管理系統Java
- 異常值檢測!最佳統計方法實踐(程式碼實現)!⛵
- 工程座標轉換方法C#程式碼實現C#
- UIView中與AutoLayout相關的幾個方法對比UIView
- UIScrollView AutoLayoutUIView
- AutoLayout Tips
- Tomcat程式碼實現Tomcat
- Promise 程式碼實現Promise
- Java 併發程式設計:ThreadLocal 的使用及其原始碼實現Java程式設計thread原始碼
- OutputStreamWriter介紹&程式碼實現和InputStreamReader介紹&程式碼實現
- Locust 程式碼指令碼實現指令碼
- SpringAOE的程式碼實現(未完工)Spring
- Spring方法注入的使用與實現原理Spring
- 網格人為干擾度計算方法的matlab程式碼實現Matlab
- Linklist程式碼實現以及程式碼解讀
- 如何使用充血模型實現防彈程式碼 - DZone Java模型Java
- iOS使用核心的50行程式碼實現一個路由元件iOS行程路由元件
- 教你使用1行程式碼在Java中實現字串的逆序行程Java字串
- cell label autoLayout
- 邏輯式程式語言極簡實現(使用C#) - 4. 程式碼實現(完結)C#
- 如何實現程式碼高亮
- HashTable實現程式碼分享
- 10行程式碼實現微信小程式支付功能,使用小程式雲開發實現小程式支付功能(行程微信小程式
- 使用正則實現 getType方法
- Java 抽象類與方法:實現安全性與程式碼重用Java抽象
- 《統計學習方法》——樸素貝葉斯程式碼實現
- 實現【檢視更多】功能的程式碼
- Jquery實現的高亮效果程式碼分享jQuery
- 實現簡單的`Blazor`低程式碼Blazor