注意:這個View是父視圖 view1 和 view2 是互相約束的
注意:盡量view2 為同一個層級 這樣循環(huán)加view1的時候容易計算
view1.translatesAutoresizingMaskIntoConstraints = false
View.addSubview(view1)
View.addConstraint(NSLayoutConstraint(
item: <#AnyObject#>, 指定約束左邊的視圖view1
attribute: <#NSLayoutAttribute#>, 指定view1的屬性attr1
relatedBy: <#NSLayoutRelation#>, 指定左右兩邊的視圖的關(guān)系relation
toItem: <#AnyObject?#>, 指定約束右邊的視圖view2
attribute: <#NSLayoutAttribute#>, 指定view2的屬性attr2
multiplier: <#CGFloat#>, 指定一個與view2屬性相乘的乘數(shù)multiplier
constant: <#CGFloat#>)) 指定一個與view2屬性相加的浮點數(shù)constant
公式:view1.attr1 <relation> view2.attr2 * multiplier + constant
eg:
[NSLayoutConstraint constraintWithItem:view1
attribute:NSLayoutAttributeLeft
relatedBy:NSLayoutRelationEqual
toItem:view2
attribute:NSLayoutAttributeRight
multiplier:1
constant:10]
代碼意思是: view1的左側(cè),在,view2的右側(cè),再多10個點,的地方。
NSLayoutRelation:
typedef NS_ENUM(NSInteger, NSLayoutRelation) {
NSLayoutRelationLessThanOrEqual = -1, //小于等于
NSLayoutRelationEqual = 0, //等于
NSLayoutRelationGreaterThanOrEqual = 1, //大于等于
};
NSLayoutAttribute:
typedef NS_ENUM(NSInteger, NSLayoutAttribute) {
NSLayoutAttributeLeft = 1, //左側(cè)
NSLayoutAttributeRight, //右側(cè)
NSLayoutAttributeTop, //上方
NSLayoutAttributeBottom, //下方
NSLayoutAttributeLeading, //首部
NSLayoutAttributeTrailing, //尾部
NSLayoutAttributeWidth, //寬度
NSLayoutAttributeHeight, //高度
NSLayoutAttributeCenterX, //X軸中心
NSLayoutAttributeCenterY, //Y軸中心
NSLayoutAttributeBaseline, //文本底標(biāo)線
NSLayoutAttributeNotAnAttribute = 0 //沒有屬性
};
//水平約束NSLayoutConstraint.constraintsWithVisualFormat("H:|-20-[greenView]-20-[yellowView(==greenView)]-20-|", options: 0, metrics: nil, views: [view1 : view2])
//垂直約束 NSLayoutConstraint.constraintsWithVisualFormat("V:|-20-[greenView]-20-[yellowView(==greenView)]-20-|", options: 0, metrics: nil, views: [view1 : view2])
//修改約束
UIView.animateWithDuration(0.3, animations: { () -> Void in
//有時需要
superview.layoutIfNeeded()
self.layoutIfNeeded()
self.deleteLabel.layoutIfNeeded()
})
swift - 給一個視圖添加約束
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- #import "ViewController.h" @interface ViewController (){ ...
- Xamarin XAML語言教程構(gòu)建ControlTemplate控件模板 控件模板ControlTemplate...