【发布时间】:2018-02-02 14:36:31
【问题描述】:
我有一个UITableView,我在viewDidLoad 中实例化它,并希望限制在我的视图边缘。
UITableView *tableView = [[UITableView alloc] init];
[tableView setBackgroundColor:[UIColor blackColor]];
tableView.delegate = self;
tableView.dataSource = self;
tableView.rowHeight = 44;
[self.view addSubview:tableView];
[NSLayoutConstraint constraintWithItem:tableView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:0 constant:0].active = YES;
[NSLayoutConstraint constraintWithItem:tableView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeBottom multiplier:0 constant:0].active = YES;
[NSLayoutConstraint constraintWithItem:tableView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:0 constant:0].active = YES;
[NSLayoutConstraint constraintWithItem:tableView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeRight multiplier:0 constant:0].active = YES;
[self.view layoutIfNeeded];
这样做会导致崩溃/错误
2017-08-24 11:52:25.530554-0400 objtest[61964:48549108] *** 由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'NSLayoutConstraint for ;层 = ;内容偏移:{0, 0};内容大小:{0, 0}; adjustedContentInset: {0, 0, 0, 0}>: 0 或零秒的乘数 item 与第一个属性的位置一起创建一个 位置的非法约束等于一个常数。地点 属性必须成对指定。'
如何使用 NSLayoutConstraint(或 iOS 内置的更好的东西)正确对齐?
【问题讨论】:
-
从类文档中指定的初始化程序开始(
initWithFrame:style:)。
标签: ios objective-c uitableview