更新 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,现在所有内容都自动调整了。
我在 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,现在所有内容都自动调整了。