我试图设置一个tableview,每个单元格左边都有一个Image,一个覆盖图像的Label,最后是一个带有长文本的图片右边的标签,我希望如果需要,它会换行到下一行。我的tableview行高设置为65。
我已将行数设置为0并将换行符设置为工作换行。
我甚至尝试在我的CustomTableViewCell类中以编程方式设置参数:
self.materialLabel?.numberOfLines = 0
self.materialLabel.sizeToFit()
self.materialLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping
我已经在我的标签上尝试了许多设置约束的组合,但它要么不起作用,要么影响单元格中的所有对象,图像和图像标签不同步。无法设置对齐约束。
使用Xcode 6.3.2,Swift 1.2和iOS 8
感谢高级!
答案 0 :(得分:1)
您可以使用动态细胞高度(或自我调整细胞)。
基本上,您创建了top
,leading
,bottom
,trailing
标签相对于单元格contentView
的约束。< / p>
然后设置
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = someValue
http://www.raywenderlich.com/87975/dynamic-table-view-cell-height-ios-8-swift
答案 1 :(得分:1)
有很多方法可以为表格单元设置动态高度。
如果您不使用autolayout,则需要以编程方式计算表大小并使用表视图委托方法返回。
如果您使用自动布局,您的生活将非常轻松。向单元格添加约束,即向图像添加边框,宽度和高度约束。仅向图像添加4个边框约束(不添加高度约束)。这可能不是确切的约束,但这会给你一个想法。在viewDidload中添加以下代码
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = someValue
这应该有用。
答案 2 :(得分:0)
原来我的标签宽度太宽了。在设置标签上的约束之前,我必须锚定我的imageview和imagelabel并设置宽度和高度。