ios - 自动调整 uitableviewcell 的大小 - SWIFT

标签 ios uitableview swift autolayout

我正在尝试根据可以是一行或多行的 UILabel 的大小调整 tableviewcell 的大小。我需要为应用程序的其余部分打开自动布局,所以我不想关闭它来让它工作。目标是 iOS 7 和 iOS 8。

我尝试了几种解决方案,但由于某种原因,我似乎无法获得正确的标签高度来自动调整或调整单元格高度。

问题出现在这个方法中:calculateHeightForConfiguredSizingCell。我已经在 Git 上放了一个示例项目,所以你可以看到我所看到的。

https://github.com/mdaymond/cellResizer

此示例基于这篇文章:http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layout

更新 我检查了代码的更新。它几乎按照我想要的方式工作并以编程方式计算,但由于某种原因,标签高度的大小不正确 - 它没有获得所需的完整高度。原始代码的问题是标签需要明确的宽度。

最佳答案

我们开始吧,如果您支持 IOS 7,那么您需要在您的类中实现 UITableViewDelegate 协议(protocol),然后覆盖:

    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

}

有关基于标签文本长度的动态自定义 UITableViewCell 高度的更多信息(查看此内容),您可以将代码放在 heightForRowAtIndexPath 函数中: height based on label text length

同时覆盖:

 func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
       // example to return the estimated height 
        return 280
    }

注意:通过支持 IOS 7,您应该手动处理它。没有比 IOS 8 更简单的方法了。

但是如果你只支持IOS 8及更高版本那么你可以简单地在以下两行中完成:

self.tableView.estimatedRowHeight = 280
self.tableView.rowHeight = UITableViewAutomaticDimension

关于ios - 自动调整 uitableviewcell 的大小 - SWIFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30052930/

相关文章:

swift - NSInternalInconsistencyException : Invalid Update using tableview CoreData

iphone - 如何在 TableViewCell 中显示图像(从 JSON 服务动态检索)

iOS estimatedRowHeight 不适用于 plus 设备

ios - iOS 中的 JSON 解析

ios - Swift 桥接头 - 新目标

ios - Apple Watch 应用中的黑屏输出

iphone - 对 UIImageView 进行旋转后,我应该如何检查触摸点是否在 UIImageView 区域内?

ios - 如何在 url 字符串中编码 '' +' 字符?

ios - 寻址 init 中闭包内创建的实例

swift - 如何将字符串数组转换为 URL 数组?