在使用storyboard和xib时,我们经常要用到ScrollView,还有自动布局AutoLayout,但是ScrollView和AutoLayout 结合使用,相对来说有点复杂。根据实践,我说一下我的理解,在故事板或xib中,ScrollView是根据其下面的一个View的大小来确定ContentSize的大小。

看一下效果

1. 创建一个项目,拖拽一个ScrollView到故事板中,如下图

2. 选中ScrollView,添加约束。

3. 拖拽一个View到ScrollView上, 然后添加上下左右四周约束。

4.添加完之后, 可能会报一个错, 如下图, 这个暂时别去管。

5. 我们先确定一下, 我们是需要水平方向的滚动还是竖直方向的滚动,或者水平方向和竖直方向都需要滚动。

a.水平方向和竖直方向都需要滚动的话, 不用添加

b.水平方向滚动需要添加下面一个约束

c.竖直方向需要添加下面一个约束

6.我们以水平方向滚动为例,  我们需要确定我们想要的宽度, 添加一个固定的宽度的约束。

7.选中View, 更新一下Frame

8.如果是想要动态设置ScrollView的宽度,也就是设置View的宽度约束的值, 我们将其拉成属性, 然后修改其值。

9. 如果是确定的宽度, 可以在- (void)updateViewConstraints这个方法中修改,也可以在别处修改。

10.现在运行,就可以水平滚动了。 竖直方向的滚动和水平方向滚动的设置差不多。 我们来添加两个View, 先拖拽一个View(我设为灰色)到视图上, 然后添加约束, 如下图

11.再拖拽一个View, 背景颜色设为红色,设置好之后, 将frame设置到我们需要的, 我这边将X设置到600。

12.我们给第二个View添加约束,如下图

13.我们还需要设置一个约束, 就是第二个View距离SuperView的距离,就是第二个View的Leading约束

14.然后将这个约束Leading拉成属性,在- (void)updateViewConstraints设置他的值

如下图

这样子就OK了。

自动布局需要自己去多多实践, 有很多细节需要注意的。

本文原文来自http://www.cocoachina.com/ios/20150104/10810.html

最新文章

  1. Velocity初探小结--Velocity在spring中的配置和使用
  2. Mipmap与纹理过滤
  3. 一些稍微复杂点的sql语句
  4. NSURLConnection使用
  5. hibernate在使用sql查询query自动转化成model类型数据,query.addEntity
  6. css常用代码
  7. Linux环境安装MQ
  8. 2016"百度之星" - 初赛(Astar Round2A)
  9. [Java] File文件列表
  10. lightoj 1013
  11. iis7.5 应用程序池 经典模式和集成模式的区别
  12. JS中的的Url传递中文参数乱码,如何获取Url中参数问题
  13. .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  14. Android下实现一个简单的计算器源码
  15. Python和Java编程题(三)
  16. Android 面试题 MD
  17. python爬虫-基础入门-爬取整个网站《3》
  18. iOS 统一配置
  19. Thread类的常见问题
  20. $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别

热门文章

  1. 树莓派2系统DietPi简单安装配置使用介绍
  2. 【类库】容器对象(List、DataTable、 DataView、Dictionary)
  3. JQuery常用代码汇总
  4. [NHibernate]一对多关系(级联删除,级联添加)
  5. javaweb学习总结(五)——Servlet开发(一)
  6. 开放数据库互联ODBC配置(odbcconf)
  7. CentOS(RedHat)安装Adobe Flash Player插件 For firefox
  8. JavaScript获取浏览器高度和宽度值(documentElement,clientHeight,offsetHeight,scrollHeight,scrollTop,offsetParent,offsetY,innerHeight)
  9. Shell入门教程:Shell函数详解
  10. jQuery-H5-css3转盘抽奖-遁地龙卷风