嵌套 UICollectionView 时设置 ScrollView 高度问题

Posted

技术标签:

【中文标题】嵌套 UICollectionView 时设置 ScrollView 高度问题【英文标题】:Setting ScrollView Height issue when UICollectionView is nested 【发布时间】:2017-09-28 10:46:54 【问题描述】:

当我计算出它的父 scrollView 应该是什么时,我需要调整子集合视图的高度。高度计算会产生正确的值,但我无法让“孙子”collectionView 自行调整。

storyBoard 中的所有约束都与 scrollView 容器视图高度相关联,因此当我调整它的值时,它们都应该遵循并自行调整。

流程是:

UIScrollView -> UICollectionView -> UICollectionView

我的计算是:

    var count: CGFloat = 370

    guard let currentLegs = active.legs![cell].feet else  return 

    for _ in currentLegs 
        count += 70
    

    UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseOut, animations: 

        if count > 540 
            self.scrollView.contentSize.height = count
         else 
            self.scrollView.contentSize.height = 540
        

    , completion: nil)

    print(count)

上面计算高度,如果它比我需要的小,则默认为另一个值。

我尝试设置 scrollview.layoutIfneeded()setNeedsLayout() 但这会导致 collectionView 重绘自身导致崩溃。

是否可以从顶层调整“孙子”集合视图?

谢谢

【问题讨论】:

【参考方案1】:

试试这个

 @IBOutlet weak var scrollViewHeightConstarint: NSLayoutConstraint!

.....

    override func viewDidLayoutSubviews()


    self.scrollViewHeightConstarint.constant = "#WhatYouNeed#"

    self.View.layoutIfNeeded()



【讨论】:

以上是关于嵌套 UICollectionView 时设置 ScrollView 高度问题的主要内容,如果未能解决你的问题,请参考以下文章

当嵌套的 UITextView 开始编辑时,UICollectionView 跳转/滚动

嵌套垂直 UICollectionView 和动态高度

多层ScrollView嵌套UITableView、UICollectionView联动

UITableViewCell中嵌套UICollectionView

以编程方式将 UICollectionView 嵌套在 UIVIew 中

嵌套的 UICollectionView 为每个部分返回相同的值 - Swift