【问题标题】:How do I make the UICollectionViewCell height dynamic (w/Auto Layout) on iOS8如何在 iOS8 上使 UICollectionViewCell 高度动态(带自动布局)
【发布时间】:2014-12-09 23:11:17
【问题描述】:

我有一段时间让我的UICollectionViewCell 高度根据里面的内容(在 UILabel 元素中)是动态的。我已经阅读了所有关于如何使用 iOS 8 更容易做到这一点的文章,但我现在花了很多时间试图弄清楚这一点。希望我只是缺少一些小东西。希望...

我能够在某种程度上通过使用this approachsizeForItemAtIndexPath 部分)手动设置每个单元格的高度来完成这项工作 - 根据文本计算出来(@987654326 @),但就像我说的,我一遍又一遍地读到它应该是“神奇”的自动布局和 iOS 8,我不应该做所有这些。

这是我在视图控制器的cellForItemAtIndexPath 方法中的代码:

var cell:LocationCell = collectionView.dequeueReusableCellWithReuseIdentifier("LocationCell", forIndexPath: indexPath) as LocationCell
let thisLocation = fetchedResultsController.objectAtIndexPath(indexPath) as LocationModel

cell.notesLabel.text = thisLocation.notes
cell.notesLabel.sizeToFit()

return cell

够简单吗?对?但是每个单元格的高度相同——不管notesLabel 的大小是多少。这是故事板上的样子:

在模拟器中:

如您所见,UICollectionViewCell 的高度没有变化。我还尝试在viewDidLoad 中添加布局属性estimatedItemSize,但无论我放入估计 大小,所有UICollectionViewCells 都是如何出现的。

我可以发送任何不清楚的 github 链接。非常感谢您的帮助,这已经困扰了我好几天了!

【问题讨论】:

    标签: ios swift uicollectionview


    【解决方案1】:

    UIView 具有 sizeThatFits 作为扩展。我用它来居中文本字段。基本概念是加载视图,获取它提供的测量值,然后根据需要调整容器的大小/位置。

    【讨论】:

    • 是的,这就是我尝试过的,但我必须做很多自定义工作才能获得正确的高度,根据我读过的内容,你不应该在 iOS 8 上做(并且不应该与自动布局有关)。我之前读过this article——向下滚动到“iOS 8 Magic”,然后说“自动布局会很高兴地为你返回这个解析的高度”。但是怎么做呢?
    猜你喜欢
    • 2014-09-20
    • 2023-04-02
    • 2021-05-10
    • 2014-01-03
    • 2015-08-06
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多