我需要使用IB实现以下布局
http://www.giphy.com/gifs/tK0FNSHglOSyg8sVWx
我当前正在使用以下结构
UIScrollView
- Content View (UIView)
- Image Slider (FSPagerView)
- Clinic Name (UILabel)
- Clinic Slogan (UILabel)
- Line Separator View
- Clinic Profile (UITextView)
- Section View (Custom UIView)
- Doctors View (UICollectionView) - Horizontal Scrolling
IB的PFB屏幕截图
它使我看到以下屏幕
http://www.giphy.com/gifs/fxkcxS2GbJCCQcaiCD
如您在上面的GIF中所看到的,布局正在工作,但是我很难使Collection View在UIScrollView中水平滚动
我的问题是
PS:我尝试了StackOverflow和其他来源提供的几乎所有解决方案,以使UICollectionView在UIScrollView中可滚动,但没有任何效果,但是我已经以编程方式实现了类似的布局(没有IB和Autolayout),并且可以为您提供参考,这里是我正在使用https://iswift.org/playground?dmHCmv&v=3
的工作代码谢谢。
答案 0 :(得分:0)
好吧,罪魁祸首是遵循代码,约束条件,并且一切都设置正确,但是当我在viewWillLayoutSubviews中更新高度约束的常量时,尽管常量值已更新,但集合视图滚动停止工作。在这里,我在IB中搜索问题,认为这是一个约束问题。
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
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.0
}
答案 1 :(得分:0)
如果有人遇到此问题,并且您正在以编程方式设置scrollview contentSize
,请尝试为scrollview
contentView
(或滚动视图内部的子视图容器中的任何视图)设置插座。而是设置滚动视图的内容视图的约束常数。
答案 2 :(得分:0)
只是一个警告,一个非常愚蠢的烦人的错误是:
当您忘记在集合视图中选择“HORIZONTAL”时!
默认情况下它们是垂直的,行为与“无法滚动”相同。