iOS中以编程方式对UITableView的约束

时间:2015-04-17 07:00:46

标签: ios iphone autolayout nslayoutconstraint

我有一个UITableView。我想以编程方式设置约束。以下是我想要设置的约束。

  1. 龙头
  2. 尾随

3 个答案:

答案 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)
    }
}
}