2017-09-28 43 views
0

我需要调整一个子集合视图高度,当我计算它的父级scrollView应该是什么。高度计算会产生正确的值,但我无法让“Grand child”collectionView自行调整。设置UICollectionView嵌套时的ScrollView高度问题

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() 


}