【问题标题】:UICollectionView inside of UITableViewCell - AutoLayoutUITableViewCell 内的 UICollectionView - AutoLayout
【发布时间】:2015-09-14 22:24:32
【问题描述】:

我在UITableViewCell 中使用UICollectionView。一切正常,但我对自动布局有一些问题。 UICollectionView 应该只显示没有水平或垂直滚动​​的单元格。因为现在我的UITableViewCell 中有一个可滚动的UICollectionView,下面的代码不适用于我获取该单元格的动态表格单元格的高度,但对于其他单元格。

self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 44

我取消选中情节提要中的“启用滚动”选项,但结果是,我无法滚动,也看不到我的 collectionView 的其余部分。 现在我只是将我的UICollectionViewUITableViewCell 的约束设置到所有边缘,但它不起作用。

如果有人有想法会很棒。

非常感谢。

【问题讨论】:

    标签: ios autolayout uicollectionview uicollectionviewcell tableviewcell


    【解决方案1】:

    您需要在UICollectionView 上设置高度限制。如果您刚刚将您的UICollectionView 固定到您的UITableViewCell,它的高度来自表格单元格,而表格单元格的高度来自收集单元格,所以在这种情况下,双方都不知道该怎么做。

    【讨论】:

    • 嘿,谢谢。尝试了您的解决方案,但目前它不是我试图达到的结果。我为我的 UICollectionView 尝试了一个固定高度,然后将一个按钮约束固定到我的 UITableViewCell。最终陷入约束冲突。当我为 UICollectionView 设置固定高度时,它不再是动态的。 UICollectionView 的高度应该与当前显示的单元格数量动态相关。然后 UITableViewCell 应该从 UICollectionView 动态获取它的高度
    • 我认为没有完全动态的解决方案可以解决您想要实现的目标。集合视图不会以这样的方式调整自身大小,它会告诉 tableviewcell 也调整大小。这里最简单的解决方案是在您的集合视图上设置高度约束。当您将 tableview 单元格出列时,在单元格中重新加载您的集合视图,然后通过 cell.collectionView.layout.contentViewSize.height(使用您自己的变量名)找到它的完整高度。将高度约束设置为此值。您的 tableView 单元格应调整为集合视图高度。
    • 我面临着完全相同的问题,这让我发疯。你解决了吗?
    【解决方案2】:

    我之前确实遇到过类似的问题。原来我还没有完全建立好UITableViewCell和它包含的元素之间的关系,以至于他们不知道要增长多远。我认为这与嵌入式滚动视图无关。只需确保在 UITableViewCell 内的 UI 元素和 UITableViewCell 的底部之间设置了约束。

    【讨论】:

    • 感谢您的评论。我以不同的方式尝试过,但现在对我不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多