我设计了一个自定义视图作为我的UITableView的标题视图.就像这样(我只是将图像链接放在这里而不是图像,因为我没有10个声誉.)
http://i.stack.imgur.com/KhNbE.png
然后在我用UITableViewController我的这个视图tableHeaderView
override func viewDidLoad() {
tableView.tableHeaderView = headerView!
//...other things
}
Run Code Online (Sandbox Code Playgroud)
我从JSON获得文本来实现ContentLabel.如果文本很长,headerView将像下面的图像一样重叠单元格.(短文本可以)
http://i.stack.imgur.com/gtO2g.png
部分是可见的,但是两行单元格已被headerView重叠.我不确定我是否做了错误的约束或代码ContentLabel.下面是我的代码配置的contentLabel中TopicHeaderView.swift
var content: String? {
didSet {
self.contentLabel.text = content!
self.setNeedsUpdateConstraints()
self.updateConstraintsIfNeeded()
self.setNeedsLayout()
self.layoutIfNeeded()
}
}
func setFrameHeight(height: CGFloat) {
var frame = self.frame
frame.size.height = height
self.frame = frame
}
override func layoutSubviews() {
super.layoutSubviews()
self.contentLabel.preferredMaxLayoutWidth = self.contentLabel.alignmentRectForFrame(contentLabel.frame).width
self.titleLabel.preferredMaxLayoutWidth = self.titleLabel.bounds.size.width
self.authorLabel.preferredMaxLayoutWidth = self.authorLabel.bounds.size.width
self.setFrameHeight(CGRectGetMaxY(contentLabel.frame) + 8)
}
Run Code Online (Sandbox Code Playgroud)
我在SO中浏览了类似的问题,但似乎找不到解决方案来解决我的问题.任何人都可以帮忙吗?
编辑:
我记录了我的第一个tableView单元格的起始CGPoint和headerView的高度.它显示正确的数字,这意味着第一个单元格垂直于标题视图旁边.当然,由于部分的高度,有22分的差距.
headerheight:600.0
first cell's …Run Code Online (Sandbox Code Playgroud)