【发布时间】:2018-01-03 21:25:13
【问题描述】:
我正在代码中创建一个表格视图,并希望使用自动布局将其放置在故事板屏幕上最低元素的正下方。最下方元素的位置会根据屏幕上元素的内容而有所不同——这要归功于自动布局。
是否有办法从情节提要中获取一个具有出口的元素并使用代码对其创建约束?
这就是我创建表格的方式:
_myTableView = [[UITableView alloc] initWithFrame:
CGRectMake(20, 714, 280, 200) style:UITableViewStylePlain];
_myTableView.delegate = self;
_myTableView.dataSource = self;
_myTableView.scrollEnabled = NO;
_myTableView.layer.cornerRadius = 5;
_myTableView.backgroundColor = [UIColor whiteColor];
_myTableView.rowHeight=28;
[self.scrollView addSubview:_myTableView];
这就是我通常在代码中创建约束的方式:
NSLayoutConstraint *tableToBottomElement = [NSLayoutConstraint
constraintWithItem:_myTableView attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual toItem:self.bottomElement
attribute:NSLayoutAttributeBottom multiplier:1 constant:12];
基本上我希望表格视图出现在底部元素下方 12 点处。
但是,在创建约束后,它显示为未使用的变量。我如何让 tableview 适应这个约束?有没有办法让表格最初出现在正确的位置?
【问题讨论】:
-
您需要在创建视图后将约束添加到视图中。只要您创建约束并将其添加到
viewDidLoad中,表格就会出现在正确的位置。 -
是否需要将约束设置为.isActive?或者你如何打开它,使它不再给出未使用的变量警告。
-
您需要激活它developer.apple.com/documentation/appkit/nslayoutconstraint/… 此外,您需要在表格视图中将
translatesAutoResizingMaskIntoConstraints设置为false。
标签: ios autolayout