У меня есть следующие настройки в 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 (), проблемаесть, я использую UICollectionView () внутри ScrollView (), который останавливает прокрутку в тот момент, когда вызывается метод viewDidLayoutSubviews.
Можете ли вы помочь в правильном направлении при обновлении высоты представления прокрутки в подклассе UIViewController?
Спасибо