iOS scrollView设置约束以及不能滑动问题

当我们在view中添加了一个scrollView并设置其约束后,再向scrollView中添加一个以scrollView为基准的约束的控件时,约束会报错,这是因为scrollView需要根据添加在其内部的子控件的宽高及与四周的距离计算出它的contentSize,也就是说,内部子控件约束的添加需要遵循两个原则:

  • 1、scrollView内部子控件的尺寸不能以scrollView的尺寸为参照
  • 2、scrollView内部的子控件的约束必须完整
解决方法:

1、提供一个具体值的约束
2、子控件的尺寸可以参照scrollView以外其它的控件的尺寸(如控制器的view的尺寸)
另外,scrollView不能滑动的原因:
1、contentSize 这个属性,比scrollView的frame小就不会滚动
2、在self.view上添加scrollview 能正常滚动,向里面添加其他控件的时候,不能正常滚动:需要在viewDidLayoutSubviews中设置scrollView的contentSize
或在xib中使用autoLayout,也需要在viewDidLayoutSubviews中设置contentSize

override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        self.scrollView.contentSize = CGSize(width: 0, height: IS_IPHONE_5 ? kScreenHeight+150 : kScreenHeight)
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容