iPr*_*mIt -3 constraints objective-c nslayoutconstraint swift
我希望将基于Objective-c的通用应用程序转换为Swift项目.到目前为止,我已经能够交换大部分代码,但是我在翻译以下内容时遇到了问题:
NSLayoutConstraint *leftConstraint = [NSLayoutConstraint constraintWithItem:self.contentView
attribute:NSLayoutAttributeLeading
relatedBy:0
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1.0
constant:0];
[self.view addConstraint:leftConstraint];
NSLayoutConstraint *rightConstraint = [NSLayoutConstraint constraintWithItem:self.contentView
attribute:NSLayoutAttributeTrailing
relatedBy:0
toItem:self.view
attribute:NSLayoutAttributeRight
multiplier:1.0
constant:0];
[self.view addConstraint:rightConstraint];
Run Code Online (Sandbox Code Playgroud)
我还必须更改此代码:
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
return NO;
}
Run Code Online (Sandbox Code Playgroud)
Swift中有类似的方法吗?
任何帮助将不胜感激.在此先感谢所有回复的人.:)
let leftConstranint = NSLayoutConstraint(item: self.contentView, attribute: .Leading, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1.0, constant: 0)
self.view.addConstraint(leftConstranint)
let rightConstraint = NSLayoutConstraint(item: self.contentView, attribute: .Trailing, relatedBy: .Equal, toItem: self.view, attribute: .Right, multiplier: 1.0, constant: 0)
self.view.addConstraint(rightConstraint)
Run Code Online (Sandbox Code Playgroud)
.Leading,.Left,.Trailing和.Right来自枚举NSLayoutAttribute.功能来自UIGestureRecognizerDelegate:
func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
return false
}
Run Code Online (Sandbox Code Playgroud)
使用制图,您可以在以下内容中执行上述Autolayout:
layout(self.contentView, self.view) { (contentView, view) -> () in
contentView.leading == view.left
contentView.trailing == view.right
}
Run Code Online (Sandbox Code Playgroud)
使用Snap,您可以执行以下Autolayout:
self.contentView.snp_makeConstraints { maker in
maker.leading.equalTo(self.view.snp_left)
maker.trailing.equalTo(self.view.snp_right)
}
Run Code Online (Sandbox Code Playgroud)
Cartography更像是一种在代码中制定约束的数学方法.换句话说,Snap更像是一种用英语描述词汇约束的方式.
与视觉语言格式(编码普通字符串的约束),双方Cartography并Snap可以利用代码完成的XCode中.