我从自定义UITableViewHeaderFooterView
收到此错误:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. WYBDetailHeaderView's implementation of -layoutSubviews needs to call super.'
我已经创建了UITableViewHeaderFooterView
子类并创建了一个XIB文件,我使用registerNib:forHeaderFooterViewReuseIdentifier:
上的UITableView
加载了该文件。
由于IB中没有UITableViewHeaderFooterView
,我已按照其他帖子中的建议使用了UIView
(UITableViewHeaderFooterView in InterfaceBuilder; UITableViewHeaderFooterView with IB)。
我的自定义UITableViewHeaderFooterView
使用了AutoLayout并包含两个多行UILabel
,我认为问题与这些子视图位于UITableViewHeaderFooterView
的事实有关本身而非.contentView
。但是我不知道如何使用IB。
这是我的layoutSubviews
实施(我尝试了一些没有成功的组合)。当我完全删除这个功能时,我甚至得到了错误:
- (void)layoutSubviews
{
[super layoutSubviews];
// Commented out because of infinite loop.
// If this was a custom UITableViewCell I would call these methods on self.contentView
//[self setNeedsLayout];
//[self layoutIfNeeded];
self.titleLabel.preferredMaxLayoutWidth = CGRectGetWidth(self.titleLabel.frame);
self.subtitleLabel.preferredMaxLayoutWidth = CGRectGetWidth(self.subtitleLabel.frame);
}
我该怎么做?
答案 0 :(得分:0)
试试这个方法:
-(UIView*) tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
然后,在其中加载xib文件。