动态高度单元格未在CollectionViewCell中应用

时间:2019-06-21 14:21:52

标签: ios swift uicollectionview uicollectionviewcell

我正在尝试在Swift中建立动态高度单元。实际上,我达到了动态单元格高度,但是我必须向单元格中添加新的支持字符串,然后计算其高度,然后动态求和两个标签的高度,然后应用。当我在单元格中添加第二个标签时,最后一个单元格没有应用到我身上,实际上,它是在sizeForItemAt方法中计算出正确的值,但是并没有应用到collectionView最后一行中的单元格。

这是我的方法:

if collectionView != typesCollectionView {
            let summary = summaries[indexPath.row].failure
            let failure = summaries[indexPath.row].lessons
            let viewSize = CGSize(width: self.view.frame.width-50, height: 100000)

            let failureSize = NSString(string: summary).boundingRect(with: viewSize,
                                                                    options: NSStringDrawingOptions.usesLineFragmentOrigin,
                                                                    attributes: [NSAttributedString.Key.font:UIFont(name: "Hack", size: 15)],
                                                                    context: nil)

            let lessonSize = NSString(string: failure).boundingRect(with: viewSize,
                                                                    options: NSStringDrawingOptions.usesLineFragmentOrigin,
                                                                    attributes: [NSAttributedString.Key.font:UIFont(name: "Hack", size: 15)],
                                                                    context: nil)

            var newSize = 10 + 8 + 10 + 10 + 10 + 5 + 5 + failureSize.height + 80 + 10
            newSize += 10 + 10 + 10
            newSize += 10
            newSize += lessonSize.height
            return CGSize(width: self.view.frame.width, height: newSize)
        }

10 + 8 + 10 ...的侧面是标签间的高度,它们是正确的。

在单元格中,我必须动态标记为failureLabellessonLabel

内容日志如下所示。 (尺寸是高度。)

indexPath.row => 0 size => 296.0615234375
indexPath.row => 1 size => 332.08203125
indexPath.row => 2 size => 476.1640625
indexPath.row => 3 size => 620.24609375
indexPath.row => 4 size => 1016.4716796875

尽管最后一个单元格的高度为1016,但它的应用类似于第一个单元格的高度,大约为250个单位高度。

这些是屏幕截图。

Reference

在此屏幕截图中,您可以看到有一个具有底部空间的单元格。实际上单元格的高度约为1000,但contentView(带有阴影)不适合 enter image description here

如果我尝试静态给定1000高度,那么没有问题,因此在将动态高度应用于单元格时,我可能做错了。我在这做错了什么?

谢谢。

0 个答案:

没有答案