IOS Swift 5 为动态高度 TableView 单元添加自定义 TableViewCell 分隔符

Posted

技术标签:

【中文标题】IOS Swift 5 为动态高度 TableView 单元添加自定义 TableViewCell 分隔符【英文标题】:IOS Swift 5 Add Custom TableViewCell Separator for Dynamic Height TableView Cell 【发布时间】:2020-06-26 03:08:39 【问题描述】:

我正在根据 Cell 的内容创建一个动态高度 TableViewCell。我想在单元格之间创建一个自定义分隔符。我在 TableViewCell swift 文件中有以下代码。似乎自定义分隔符是使用单元格的默认高度创建的,而不是根据单元格内容计算的单元格高度 - 这是在 TableView heightForRowAt 覆盖函数中计算的。结果,客户分隔符在单元格中呈现。似乎在高度计算之前调用了 awakeFromNib。有什么建议吗?

class FeedTableViewCell: UITableViewCell  

    override func awakeFromNib() 
        super.awakeFromNib()

        // add a custom seperator between table view cells.
        let screenSize = UIScreen.main.bounds
        let separatorHeight = CGFloat(10.0)
        let additionalSeparator = UIView.init(frame: CGRect(x: 0, y: self.frame.size.height-separatorHeight, width: screenSize.width, height: separatorHeight))
        additionalSeparator.backgroundColor = UIColor(named: "TEXTVIEWCELL_SEPARATOR")
        self.addSubview(additionalSeparator)
    

【问题讨论】:

【参考方案1】:

在计算高度之前调用 awakeFromNib。虽然该解决方案适用于固定高度的 TableViewCells,但它不适用于可变高度的 TableViewCells。我使用的解决方案是在 TableViewCell 的底部创建一个视图,使用约束将其固定到 TableViewCell 的底部。您可以将视图大小设置为 10pt,当然还可以设置颜色。我是在 StoryBoards 中完成的,而不是以编程方式。

【讨论】:

以上是关于IOS Swift 5 为动态高度 TableView 单元添加自定义 TableViewCell 分隔符的主要内容,如果未能解决你的问题,请参考以下文章

iOS + Swift 2:UITableViewCell 中的动态高度不适用于空视图

iOS:在 Swift 中动态设置 UITableView 高度

在 iOS Swift 中动态调整 UITableViewCell 高度

如何根据swift 4或5中的图像大小使图像视图高度和宽度(纵横比)动态? [关闭]

iOS Swift - 动态增加 UITextView 和父 UIView 的高度

ios swift - 表格视图单元格动态高度取决于设备