我编写了一个UITableView
具有custom的UITableViewCell
,并且数据加载和表数据填充都没有问题,但是单元格高度是如此错误,以至于每个单元格的内容仅是可见的一半(请参阅随附的屏幕截图)
我有一个用于的.xib
文件(如上面的第二个屏幕快照所示),UITableViewCell
并编写了一个UITableViewCell
用layoutSubviews()
下面的实现覆盖该类的类,在该类中,我使用该[Neon][3]
库对UI元素进行了定位/布局:
override func layoutSubviews() {
super.layoutSubviews()
self.contentView.clipsToBounds = true
avatarImage.anchorInCorner(.TopLeft, xPad: 2, yPad: 2, width: 15, height: 15)
postedByUsername.align(.ToTheRightCentered, relativeTo: avatarImage, padding: 1, width: 190, height: 15)
timeAgo.anchorInCorner(.TopRight, xPad: 2, yPad: 2, width: 130, height: 15)
questionTitle.alignAndFill(align: .UnderMatchingLeft, relativeTo: avatarImage, padding: 3)
firstAttachedImage.align(.ToTheRightMatchingTop, relativeTo: questionTitle, padding: 3, width: 40, height: 40)
self.answerButton.setFAText(prefixText: "", icon: FAType.FAReply, postfixText: "2", size: 14, forState: .Normal)
self.commentButton.setFAText(prefixText: "", icon: FAType.FACommentO, postfixText: "1", size: 14, forState: .Normal)
self.likeButton.setFAText(prefixText: "", icon: FAType.FAHeartO, postfixText: "10", size: 14, forState: .Normal)
answerCommentLikeStackView.align(.UnderMatchingLeft, relativeTo: questionTitle, padding: 3, width: 190, height: 30)
self.setNeedsUpdateConstraints()
}
在我的UITableViewController实现中,我按如下所示设置单元格/行的高度:
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 150
self.tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0)
self.tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
// disable horizontal scroll
self.tableView.contentSize = CGSizeMake(self.tableView.frame.size.width, self.tableView.contentSize.height)
但是像元高度仍然是错误的,我还可以做些什么使它看起来正确呢?
而不是设置tableView.rowHeight = x,而是尝试覆盖heightForRowAtIndexPath方法:
override func tableView(tableView: UITableView, heightForRowAtIndexPathindexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
应该为表视图呈现的每个单元格调用此方法,并相应地调整其大小。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句