StoryBoard下ScrollView如何添加约束

在StoryBord拖过ScrollView,添加约束的时候发现他并不会按照你猜想的去执行。这是由于scrollView本身ContentSize、contentInsets等复杂的特性导致,苹果文档在讲autoLayout的时候甚至专门拿出一节讲如何对scrollView进行自动布局。

解决方案:可以给ScrollView添加一个唯一的子视图,大小和ScrollView一样,然后所有原计划添加到ScrollView上面的控件都添加在子视图上面。

步骤如下:

1.首先在我们的Controller自带的View里面添加一个ScrollView,点开下面设置约束的4个按钮的第2个,约束设置距离父视图的距离为(0,0,0,0)

2.在ScrollView上面添加一个View成为ScrollView的子视图,点开下面设置约束的4个按钮的第2个,设置约束距离ScrollView的距离为(0,0,0,0)

3.这个时候会发现报错了,不用紧张,先不用管它,咱们继续往下走。

4.点开下面设置约束的4个按钮的第一个,选择Horizontal Center in Container,并上对勾,(如果想要左右滑动就选择Vertical Center in Container,同时实现左右上下则全不选)

5.再次打开下面设置约束的4个按钮的第2个 选择Height设置你想要的667.(如果想要左右滑动就选择Width,同时实现左右上下就全部设置)这个高度是以后运行后scroller的ContentSize

6.设置完成以后发现错误不见了,只有一个黄色的警告,这是由于Frame没有更新导致的,我们来更新一个Frame。

7.接下来我们就可以在这个ScrollView的子视图View上面来添加控件了。设置约束的时候是相对于父视图View的哦。

8.运行程序,发现现在已经可以滑动了

[注]上面的View是设置的一个固定的一个值。如果想要动态的设置,就需要把我们刚才加的高度的约束设置成属性

http://img.blog.csdn.net/20150625121759350?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdHg4NzQ4Mjg1MDM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

起一个名字, height; 然后重写 -(void)updateViewConstraints 方法,在调用super 后 动态的设置height这个约束的constant属性。

http://img.blog.csdn.net/20150625121745784?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdHg4NzQ4Mjg1MDM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

这样你会发现ScrollView可滑动的幅度会在每次运行后都不一样哦~;

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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,267评论 4 61
  • 翻译自“Auto Layout Guide”。 2 自动布局细则手册 2.1 堆栈视图 接下来的章节展示了如何使用...
    lakerszhy阅读 1,904评论 3 9
  • 再次走过 爬满藤蔓的旧墙 你在风中拍这剪影时的模样 长发飘扬 南礼士路 这路口的车流熙攘 写给你的诗...
    纳兰小白阅读 233评论 2 5
  • 文/墨弦 很安静,看不清,阳光下张开双手去拥抱,傻傻以为这样就能拥抱太阳。 我也不知道从什么时候开始,阴雨天情绪总...
    墨弦Moon阅读 277评论 13 6
  • 今天有人问到我这个问题,就顺便整理一下。 Mac软件“安装”实际上分为两种: dmg镜像:类似于windows中的...
    静候那一米阳光阅读 560评论 0 0