麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

IOS中級篇——自動布局Autolayout?and?VFL

2019-11-14 18:47:54
字體:
來源:轉載
供稿:網友
?
?

*/ 以下不常用 ?

// 務必記住
// 1.當給某個控件設置約束時候,必須關閉這個控件上autoresing
// 2.當給一個控件添加約束時候,必須保證這個控件在控制器View的層次結構中

- (void)viewDidLoad {
??? [
super viewDidLoad];
??
??? UIView *redView = [[UIView alloc] init];
??? redView.backgroundColor = [UIColor redColor];
??? [
self.view addSubview:redView];
???
??? UIView *blueView = [[UIView alloc] init];
??? blueView.backgroundColor = [UIColor blueColor];
??? [
self.view addSubview:blueView];
???
//? Constraint 約束
/*
?
第一個參數 Item
?1.
需要約束控件
?
第二個參數 約束的屬性
?NSLayoutAttributeLeft = 1,
左邊
?NSLayoutAttributeRight,?
右邊
?NSLayoutAttributeTop,???
頂部
?NSLayoutAttributeBottom,
下邊
?NSLayoutAttributeLeading,
左邊
?NSLayoutAttributeTrailing,
右邊
?NSLayoutAttributeWidth, ?

?NSLayoutAttributeHeight,?

?NSLayoutAttributeCenterX,
水平中線
?NSLayoutAttributeCenterY,
垂直中線
?
第三個參數就是 關系
?typedef NS_ENUM(NSInteger, NSLayoutRelation) {
?NSLayoutRelationLessThanOrEqual = -1,? "<="
?NSLayoutRelationEqual = 0,????????????? "=="
?NSLayoutRelationGreaterThanOrEqual = 1, ">="
?};
第四個參數 參照物(參照控件)
?
第五個參數 參照控件的屬性
?
multiplier

?
constant ? +
?
公式
item1.attribute <relation> item2.attribute * multiplier + constant
?
?*/

// 務必記住
// 1.當給某個控件設置約束時候,必須關閉這個控件上autoresing
?? blueView.translatesAutoresizingMaskIntoConstraints =
NO;
??? redView.translatesAutoresizingMaskIntoConstraints =
NO;
// 2.當給一個控件添加約束時候,必須保證這個控件在控制器View的層次結構中
???
//? 添加藍色的View頂部
??? NSLayoutConstraint *blueTop = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeTop? relatedBy:NSLayoutRelationEqual toItem:
self.view attribute:NSLayoutAttributeTop multiplier:1 constant:20];
???
??? [
self.view addConstraint:blueTop];
???
???
//? 添加藍色的View左邊
??? NSLayoutConstraint *blueLeft = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeLeft? relatedBy:NSLayoutRelationEqual toItem:
self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:20];
???
??? [
self.view addConstraint:blueLeft];
???
//? 添加藍色的View右邊
??? NSLayoutConstraint *blueRight = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeRight? relatedBy:NSLayoutRelationEqual toItem:
self.view attribute:NSLayoutAttributeRight multiplier:1 constant:-20];
??? [
self.view addConstraint:blueRight];
???
//? 添加藍色的View的高度
??? NSLayoutConstraint *blueHeigt = [NSLayoutConstraint constraintWithItem:blueView attribute:NSLayoutAttributeHeight? relatedBy:NSLayoutRelationEqual toItem:
nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:100];
??? [
self.view addConstraint:blueHeigt];
???
//? 添加紅色view上面約束
//? 紅色的頂部
??? NSLayoutConstraint *redTop = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeTop? relatedBy:NSLayoutRelationEqual toItem:blueView attribute:NSLayoutAttributeBottom multiplier:
1 constant:20];
??? [
self.view addConstraint:redTop];
//? 紅色view與藍色view右邊對齊
??? NSLayoutConstraint *redRight = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeRight? relatedBy:NSLayoutRelationEqual toItem:blueView attribute:NSLayoutAttributeRight multiplier:
1 constant:0];
??? [
self.view addConstraint:redRight];
??
???
//? 紅色view與藍色view的高度相同
??? NSLayoutConstraint *redHeight = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeHeight? relatedBy:NSLayoutRelationEqual toItem:blueView attribute:NSLayoutAttributeHeight multiplier:
1 constant:0];
??? [
self.view addConstraint:redHeight];
???
???
???
//? 紅色view與藍色view的高度相同
??? NSLayoutConstraint *redWidth = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeWidth? relatedBy:NSLayoutRelationEqual toItem:blueView attribute:NSLayoutAttributeWidth multiplier:
0.5 constant:0];
??? [
self.view addConstraint:redWidth];
???
}

動畫
? ? self.vSpaceConstraint.constant += 100;
??? self.hSpaceContraint.constant += 100;
???
self.widthcontraint.constant += 100;
???
self.heightContraint.constant += 100;
???
???
??? [UIView animateWithDuration:
1 animations:^{
//????? 這個方法是讓重新布局界面
//????? 計算約束,然后調節控件的位置
??????? [
self.view layoutIfNeeded];
??? }];


——Vfl 語法
偶爾用 ?
// ?一定要關閉autoresizing?
- (void)viewDidLoad {
??? [
super viewDidLoad];
???
//? 1.創建子控件,添加加到控制器view
??? UIView *blueView = [[UIView alloc] init];
??? blueView.backgroundColor = [UIColor blueColor];
??? [
self.view addSubview:blueView];
???
??? UIView *redView = [[UIView alloc] init];
??? redView.backgroundColor = [UIColor redColor];
??? [
self.view addSubview:redView];
???
//? 2.關閉autoresizing
???
??? blueView.translatesAutoresizingMaskIntoConstraints =
NO;
??? redView.translatesAutoresizingMaskIntoConstraints =
NO;
???
//? 3.通過VFL添加約束
// ? options 對齊方式
//? 水平方向
??? NSArray *hConstraints = [NSLayoutConstraint constraintsWithVisualFormat:
@"H:|-20-[blueView]-20-|" options:NSLayoutFormatAlignAllTop metrics:nil views:@{@"blueView":blueView}];
??? [
self.view addConstraints:hConstraints];
???
//? 豎直方向
????? NSArray *vConstraints = [NSLayoutConstraint constraintsWithVisualFormat:
@"V:|-20-[blueView(100)]-20-[redView(==blueView)]" options:NSLayoutFormatAlignAllRight metrics:nil views:@{@"blueView":blueView,@"redView":redView}];
???
??? [
self.view addConstraints:vConstraints];
???
//? VFL 不能參與運算
//??? NSArray *h1Constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[redView(==blueView * 0.5)]" options:NSLayoutFormatAlignAllTop metrics:nil views:@{@"blueView":blueView,@"redView":redView}];
//???
//??? [self.view addConstraints:h1Constraints];
??? NSLayoutConstraint *redW = [NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:blueView attribute:NSLayoutAttributeWidth multiplier:
0.5 constant:0];
??? [
self.view addConstraint:redW];
???
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: chinesexxx少妇露脸 | 九一免费版在线观看 | 久久美女免费视频 | av日韩在线免费观看 | 国产91在线亚洲 | 蜜桃91麻豆| 国产一区二区成人在线 | 国产午夜精品久久久久婷 | 久久亚洲春色中文字幕久久 | 国产手机av在线 | 99精品无人区乱码在线观看 | 精品一区在线视频 | 国产精品久久久久免费视频 | 成人免费看视频 | 免费黄色欧美视频 | 欧美 videos粗暴 | 国产噜噜噜噜噜久久久久久久久 | 久久久久久麻豆 | 精品一区二区免费 | 欧美黄色大片免费观看 | 国产精品久久久久久久久久久天堂 | 久久久线视频 | www.99re14.com| 国产精品剧情一区二区在线观看 | 日韩av在线影院 | 黄色一级片毛片 | 亚洲第一成人在线视频 | 欧洲精品视频在线观看 | av手机在线电影 | 日韩视频在线视频 | 久久精品亚洲精品国产欧美kt∨ | 精品国产一区二区三区四 | 中文在线日韩 | 国产一国产一级毛片视频 | 毛片免费观看完整版 | 一区国产在线 | 亚州综合网 | 亚洲爱爱网站 | 国产精品成人一区二区三区电影毛片 | 欧美日韩高清不卡 | 亚洲国产超高清a毛毛片 |