更新 UIScrollView 的高度

Update height of UIScrollView

我在 xib 文件中有以下设置

ScrollView (UIScrollView)
    - ContentView (UIView)
        - ImageSlider (FSPagerView)
        - ClinicName (UILabel)
        - ClinicSlogan (UILabel)
        - LineSeparatorView (UIView)
        - ClinicProfile (UITextView)
        - SectionView (Custom UIView)
        - Doctors View (UICollectionView) - Horizontal Scrolling

在 IB 中按以下方式设置约束

// ScrollView Constraints
ScrollView.Top = NavigationView.Bottom
ScrollView.Leading = SafeArea.Leading
SafeArea.Trailing = ScrollView.Trailing
SafeArea.Bottom = ScrollView.Bottom

// ContentView Constraints
ContentView.Top = SuperView.Top
ContentView.Leading = SuperView.Leading
SuperView.Trailing = ContentView.Trailing
SuperView.Bottom = ContentView.Bottom
ContentView.Height = SuperView.Height (Priority@250)
ContentView.Width = SuperView.Width

ContentView 内子视图的所有约束都设置为与 SuperView (ContentView) 相关

viewDidLoad() 中,我正在更新 ClinicSlogan 和 ClinicProfile 的文本值并更新高度常量。哪个有效,但是当我更新滚动视图的高度时它不起作用,这是我在 viewDidLoad()

下面调用的代码
self.clinicSloganLabelHeightConstraint.constant = estimatedFrameFor(
    text: self.clinicSloganLabel.text!,
    font: self.clinicSloganLabel.font!,
    width: self.clinicSloganLabel.frame.width
).height
self.clinicProfileTextViewHeightConstraint.constant = self.clinicProfileTextView.sizeThatFits(
    CGSize(width: self.clinicProfileTextView.frame.width, height: .infinity)
).height
self.scrollView.contentSize.height = 2000

我尝试将代码放在 viewDidLayoutSubviews() 中,问题是,我在 ScrollView() 中使用 UICollectionView(),它在调用 viewDidLayoutSubviews 方法时停止滚动。

你能帮助在更新 UIViewController 子类中滚动视图的高度方面朝着正确的方向前进吗?

谢谢

好的,我在IB中使用Autolayout解决了它,我所做的是,我在最后一个视图中添加了"Bottom Space To Container"约束到Content View,现在所有内容都自动调整了。