UICollectionView не прокручивается (по горизонтали) внутри ScrollView - PullRequest
0 голосов
/ 26 сентября 2018

Мне нужно реализовать следующий макет с использованием 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

Снимок экрана PFB IB

enter image description here

Мне показывается следующий экран

http://www.giphy.com/gifs/fxkcxS2GbJCCQcaiCD

Как видно из приведенного выше GIF, макет работаетТем не менее, я испытываю трудности с горизонтальной прокруткой представления коллекции внутри UIScrollView

Мой вопрос

  1. Как сделать горизонтальную прокрутку UICollectionView в UIScrollView
  2. При добавлении UICollectionViewвнутри UIScrollView не очень хорошая идея, какой компонент я использую для макета, который я хочу достичь?(если вы можете просто помочь с идеей)

PS: я попробовал почти все решения из StackOverflow и других источников, чтобы сделать прокрутку UICollectionView внутри UIScrollView, ничего не работает, однако я реализовал подобный макет программно (без IB и Autolayout), и это работает, для вашей справки, вот рабочий код, который я использую https://iswift.org/playground?dmHCmv&v=3

Спасибо.

1 Ответ

0 голосов
/ 27 сентября 2018

Хорошо, виновник следовал за кодом, ограничением, и все было установлено правильно, но когда я обновляю ограничение постоянной высоты в 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...