代码之家  ›  专栏  ›  技术社区  ›  Ibrahim Azhar Armar

UICollectionView不在ScrollView内滚动(水平)

  •  0
  • Ibrahim Azhar Armar  · 技术社区  · 6 年前

    我需要实现以下布局使用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截图

    enter image description here

    它呈现给我下面的屏幕

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

    正如您在上面的GIF中看到的,布局正在工作,但是我很难让集合视图在UIScrollView中水平滚动

    我的问题是

    1. 如何使UICollectionView在UIScrollView中水平滚动

    https://iswift.org/playground?dmHCmv&v=3

    非常感谢。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Ibrahim Azhar Armar    6 年前

    好吧,罪魁祸首是以下代码,约束和一切都设置正确,但当我更新了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
    }
    
        2
  •  0
  •   luxo    5 年前

    如果有人遇到此问题,而您正在设置 scrollview contentSize 从程序上来说,试着为客户提供一个出口 scrollview contentView (或者任何视图都是scrollview中的子视图容器)并改为设置scrollview的内容视图的约束常量。

        3
  •  0
  •   Fattie    4 年前

    只是提醒一下,一个非常愚蠢恼人的错误是:

    当你忘记选择“水平”的集合视图!

    默认情况下,它们是垂直的,行为与“cannotscroll it”相同。