Okey所以这是我的两难境地atm。iOS UITableView覆盖自动布局约束setTableHeaderView后
我有一个UITableView(tableView)和UIView(viewForTableHeader)包含像UIImag标签等其他对象的故事板。
编程方式我设置了UIView是UITableView中的头做:
[self.tableView setTableHeaderView:self.viewForTableHeader];
这工作完全不使用自动布局时。
但随着自动布局应用程序崩溃,并给我留下了:
终止应用程序由于未捕获的异常“NSInternalInconsistencyException”,理由是:“自动布局仍在执行-layoutSubviews后需要。 UITableView的-layoutSubviews实现需要调用super。'
所以在viewDidLoad中我试图设置viewForTableHeader
的约束条件是:
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:self.viewForTableHeader attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.tableView attribute:NSLayoutAttributeTop multiplier:0 constant:0];
[self.view addConstraint:constraint];
constraint = [NSLayoutConstraint constraintWithItem:self.viewForTableHeader attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.tableView attribute:NSLayoutAttributeLeft multiplier:0 constant:0];
[self.view addConstraint:constraint];
,我也试过:
- (void)layoutSublayersOfLayer:(CALayer *)layer {
[super layoutSublayersOfLayer:self.tableView.layer];
,做同样的事情,试图设置的限制这里
}
它是否更好将viewForTableHeader
置于nib文件中? 我有点不喜欢这个如此真实的任何帮助或指针会有帮助。
哦,听起来都那么容易:) 所以,我照你说的和draged的viewForTableHeader过的tableView是的,这就是所有我不得不这样做。 *叹息* 我真的过度劳累我的屁股在这一个。 非常感谢Mariam N! – Pedroinpeace 2013-04-21 19:57:15