动态滚动视图

时间:2016-12-16 07:47:30

标签: ios swift dynamic uiscrollview uicollectionview

It's the same question with Simon's

但我不能在那里发表评论,因为有50个声誉而且我有完全相同的问题。很抱歉重新发布,但没有解决方案。任何帮助表示赞赏。谢谢!

问题是......

我有一个

-UIScrollView

---标签

---标签

--- UICollectionView

我已禁用UICollectionViews滚动功能,因此我只想使用Scrollview滚动。我的问题是我不知道如何计算UICollectionViews的高度,所以我可以更新我的UIScrollView。如果它是UICollectionView中的许多元素,它就会被剪裁。

我创建了这个小HTML示例,以显示我正在寻找的内容http://jsfiddle.net/hDwPH/

Dummy

2 个答案:

答案 0 :(得分:1)

我建议只让一个collectionView而不是创建这个视图层次结构,在另一个scrollview中添加一个scrollview不是一个好习惯。

在实施cellForItemAtIndexPath时,您可以查看当前indexPath.item的内容,基于它 - 如果是0或1-,您可以返回不同的自定义包含标签的单元格。

例如:

Swift 2

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    // check depends on how many cells they should be to display the labels, i.e: one label for each cell or all of the labels in one cell:
    if indexPath.item == 0 {
        // retrun the cell with the label(s)
    }

    // return the regular cell...
}

答案 1 :(得分:0)

最好将单个CollectionView与不同类型的单元格一起使用。

但是如果你需要按照你的描述使用它,你应该更改UIScrollView的contentSize。和collectionView的框架(如果使用自动布局,则为高度约束)。但这是一种肮脏的方式

collectionView.reloadData()
collectionView.layoutIfNeeded()
scrollview.contentSize.height = labelsHeight + collectionView.contentSize.height
collectionView.frame.size.height =     collectionView.contentSize.height