我有一个UITableView。我想以编程方式设置约束。以下是我想要设置的约束。
答案 0 :(得分:0)
试试这个,
NSLayoutConstraint *constraintSet = [NSLayoutConstraint constraintWithItem:YourTableView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1.0f constant:0.f];
[self.view addConstraint:constraint];
现在也添加这个属性,
NSLayoutAttributeTop
NSLayoutAttributeTrailing
NSLayoutAttributeBottom
而不是添加
[yourview addConstraint: constraintSet];
答案 1 :(得分:0)
在我的代码中通常使用如下方法,您可以根据自己的需要进行自定义。
-(void)addConstraintForView:(UITableView*)tableView toView:(UIView*)parentView
{
NSMutableArray *constraints = [NSMutableArray new];
[constraints addObject:[NSLayoutConstraint constraintWithItem:tableView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:parentView
attribute:NSLayoutAttributeTop
multiplier:1.0f
constant:0.0f]];
[constraints addObject:[NSLayoutConstraint constraintWithItem:tableView
attribute:NSLayoutAttributeLeading
relatedBy:NSLayoutRelationEqual
toItem:parentView
attribute:NSLayoutAttributeLeading
multiplier:1.0f
constant:0.0f]];
[constraints addObject:[NSLayoutConstraint constraintWithItem:tableView
attribute:NSLayoutAttributeTrailing
relatedBy:NSLayoutRelationEqual
toItem:parentView
attribute:NSLayoutAttributeTrailing
multiplier:1.0f
constant:0.0f]];
[constraints addObject:[NSLayoutConstraint constraintWithItem:tableView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:parentView
attribute:NSLayoutAttributeBottom
multiplier:1.0f
constant:0.0f]];
[parentView addConstraints:constraints];
}
答案 2 :(得分:0)
您可以通过SnapKit pod库以编程方式添加约束。在这里获得snapkit
import SnapKit
class YourViewController: UIViewController {
var tableView = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(tableView)
tableView.snp.makeConstraints { (make) -> Void in
make.leading.equalTo(0)
make.trailing.equalTo(self.view)
make.top.equalTo(0)
make.bottom.equalTo(0)
}
}
}