简年14: iOS开发-UIScrollView做自动布局详解(Has ambiguous scrollable content width)

项目介绍:直接上图说明。
效果图:


Simulator Screen Shot 2016年12月8日 18.13.19.png

说明图:


F710A7DF-DDE3-4CEC-9F8B-E0D57D628BAE.png

详细说明:搜索框不用多说,固定在最顶部,高度固定为44.下面为菜单栏,高度为屏幕宽的四分之一,在做这个菜单栏的布局时,先放一个承载四个按钮的view,然后在view上放四个一样大的按钮,在这里利用控件布局的宽高比约束就可以轻松完成。接着下面就是放一个scrollView,占满剩余的空间。接着在scrollView里放一个tableView,和scrollView的frame(注意:是和frame一样大,不是scrollView的contentSize。就是占满剩余的空间)一样大。这时约束就会报错,接着玩下看。。。。

这个是菜单栏的布局


MenuView1.png

这个也是菜单栏的布局


MenuView2.png

在没往scrollView里放tableView时没有报约束错误,接着我拖一个tableView进去


scroll1.png

// 仅仅是拖一个tableView放到scrollView里,不做任何操作,出现约束错误


scroll2.png

// 约束错误截图。两个约束的意思就是scrollView存在不明确的contentSize。


scroll3.png

下面,我们来解决scrollView的contentSize问题。
首先:为scollView添加一个承载scrollView内部控件的View.暂时先忽略那个tableView,后面会对其进行布局


scroll4.png

做到这里,我们理清一下我们的思绪:scrollView存在一个frame,但是contentSize未确定,scrollView里的View也存在一个frame,而scrollview的contentSize是由其内部的控件大小决定的。所以我们现在给定View的宽度和高度就可以了。

scroll5.png

现在scrollView的contentSize大小和scrollView自身的Size一样大,因此,还是不能滚动,我所负责的项目是可以左右滑动,四个屏幕的宽度,所有更改view的宽度高度即可。

scroll6.png

到这里,约束总算没问题了

scroll7.png

接下来,对tableview进行布局,scrollView里的控件全部放到View视图里面,在这里注意要把view设置为clearColor.这里把tableview的宽度设置为view的四分之一。

scroll8.png

demo链接:https://pan.baidu.com/s/1o7ZGjkm

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,287评论 4 61
  • 前些日子,和弟弟聊了很久的天。 他说,你不回家,我一直都理解你。 当时就放声哭了。
    lize_333阅读 245评论 1 1
  • 中国的茶圣是唐代的陆羽,这是不争的,因为他写了第一部《茶经》,阐述了茶的物质属性。茶中的亚圣一般认为是唐代的卢仝,...
    杭州沐睦阅读 432评论 0 13
  • 你安静的躺在我身上 你调皮的卷缩在我腰间 你伤心的靠在我的肩膀 你高兴的在我怀里打滚 你总是这样! 撒娇! 生气!...
    二二的男孩子阅读 315评论 1 0
  • [干货] 这是我最后将registry 私有仓库配置成功后总结的一键安装脚本,基本上修改下开头的几个参数就可以了,...
    心农阅读 5,567评论 1 2