我有一个带有自定义表格部分标题的tableView,通过以下方法从我的tableSectionHeader.xib文件加载
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let nib = UINib(nibName: "TableSectionHeader", bundle: nil)
discoverTableView.registerNib(nib, forHeaderFooterViewReuseIdentifier: "TableSectionHeader")
let cell = tableView.dequeueReusableHeaderFooterViewWithIdentifier("TableSectionHeader") as? TableSectionHeader {
return cell
}
我希望有一个基于内容的变量表部分标题,所以我需要获取对我的xib文件的引用(分配给tableSectionHeader.swift,我的IBOutlets,如postImage,postDescription被声明)。
例如,我想做这样的事情......
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
// get a reference to xib,
return xibref.postImage.frame.height + xibref.postDescriptionLabel.frame.height
}
谢谢,
请注意。我不想实现estimatedRowHeight,因为apprent“bug”会导致tableView跳转,如本文所述。我这样做了,除了手动实现高度之外,还没有能够解决这个问题 UITableView with dynamic cell heights jumping when scrolling up after reloading cell
答案 0 :(得分:0)
您应该在viewDidLoad
中注册NIB,同时可以实例化NIB并将视图实例存储在实例变量xibref
中。然后,您可以简化viewForHeaderInSection
,heightForHeaderInSection
中的现有代码可能会有效。
请注意,在heightForHeaderInSection
中,您可能需要将图像/文本实际设置到视图实例中并要求它进行布局,以便从中获取正确的高度。