转自:http://dadage456.blog.163.com/blog/static/30310744201491141752716

1、创建一个空白的UIViewController

、将UIScrollView添加到UIView控件中,并设置UIScrollView针对父视图UIView的constraints(Leading/trailling/top/bottom = )

、最主要的来了,添加UIView控件到UIScrollView中。。
()并改名为ContentView....(UIScrollView主要是靠子视图来实现autolayout的高度和宽度的计算)
()然后设置ContentView的针对父视图UIScrollView的 constraints
、Leading/trailling/top=
、bottom =
、equal height / equal width (ContentView的高度和宽度 与 UIScrollView相等)
、设置equal height的优先级 priority 小于 刚才设置的bottom的优先级(该bottom的是ContentView针对UIScrollView的constraints),这里设置priority=.
需要注意
第一:为什么 bottom = 而不是 bottom = 。
在实际开发中,如果为0,并且ContentView中的内容高度不超过屏幕的高度时,uiscrollview不能下上拉动。
第二:要实现ContentView 的高度自适应为uiscrollview的contentSize的高度,需要ContentView中的子视图有明确的top与bottom,用来让autolayout计算出ContentView的实    际高度.
第三:为什么要设置equal height 的优先级。。。我们来写个公式更容易理解
因为
scrollview.height = uiview.height
又因为
ContentView.height = scrollview.height +
所以
ContentView.height != scrollView.height 也就是不能实现equal height 这个constraints。。会报错。
只要调整一下优先级就可以解决这个问题,出现冲突,优先适应ContentView的高度.... 现在你可以在ContentView上添加你想添加的控件,但记住如果你要添加的控件已经超出了屏幕的高度,你需要给ContentView里面的子控件加上bottom 和 top(不超过你也可以添加),这样autolayout才能计算出ContentView的高度,并将这个高度赋给UIScrollView的ContentSize,实现自适应高度。。。 后记:ContentView中如果使用UILabel,要给uilabel明确的height constraint,这样auto layout才能计算出高度。

UIScrollView使用autolayout 垂直滚动的更多相关文章

  1. UIScrollView的AutoLayout约束

    首先UIScrollview包含自身的frame和contentSize二个部分.frame决定其展示给用户的可见区域,contentSize决定其整个内容的大小.如果frame的宽高小于conten ...

  2. Android TextView多行垂直滚动

    在Android应用中,有时候需要TextView可以垂直滚动,今天我就介绍一下怎么实现的.在布局里: <TextView android:id="@+id/tvCWJ" a ...

  3. js实现的新闻列表垂直滚动实现详解

    js实现的新闻列表垂直滚动实现详解:新闻列表垂直滚动效果在大量的网站都有应用,有点自然是不言而喻的,首先由于网页的空间有限,使用滚动代码可以使用最小的空间提供更多的信息量,还有让网页有了动态的效果,更 ...

  4. 自己写一个jQuery垂直滚动栏插件(panel)

    html中原生的滚动栏比較难看,所以有些站点,会自己实现滚动栏,导航站点hao123在一个側栏中,就自己定义了垂直滚动栏,效果比較好看,截图例如以下: watermark/2/text/aHR0cDo ...

  5. [转]jquery.vTicker(垂直滚动)

    转至:http://www.w3ci.com/plugin/660.html 简介 vTicker 是一款非常小巧的 jQuery 垂直滚动插件,压缩后只有 2KB.vTicker 支持自定义滚动时间 ...

  6. Android自定义垂直滚动自动选择日期控件

    ------------------本博客如未明正声明转载,皆为原创,转载请注明出处!------------------ 项目中需要一个日期选择控件,该日期选择控件是垂直滚动,停止滚动时需要校正日期 ...

  7. 自定义ViewGroup实现垂直滚动

    转载请表明出处:http://write.blog.csdn.net/postedit/23692439 一般进入APP都有欢迎界面,基本都是水平滚动的,今天和大家分享一个垂直滚动的例子. 先来看看效 ...

  8. javascript焦点图之垂直滚动

    html代码布局,需要用到定位,不细说了 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  9. TextSwitcher实现文本自动垂直滚动

    实现功能:用TextSwitcher实现文本自动垂直滚动,类似淘宝首页广告条. 实现效果: 注意:由于网上横向滚动的例子比较多,所以这里通过垂直的例子演示. 实现步骤:1.extends TextSw ...

随机推荐

  1. C++ operator关键字(重载操作符)(转)

    operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名. 这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算 ...

  2. [小技巧][ASP.Net MVC Hack] 使用 HTTP 报文中的 Header 字段进行身份验证

    在一些 Web 系统中,身份验证是依靠硬件证书进行的:在电脑上插入 USB 证书,浏览器插件读取证书的相关信息,然后在发送 HTTP 登录请求时顺便在 Header 字段附加上身份信息.服务器端处理这 ...

  3. Gradle的简介、安装与配置

    Gradle介绍 Gradle是一个基于JVM的构建工具,它提供了: 像Ant一样,通用灵活的构建工具,对Ant的任务做了很好的集成 同Maven一样是基于约定的构建框架 强大的多工程构建支持.有广泛 ...

  4. jquery之多重判断

    var appPath = getAppPath(); $(function(){ $('#addTeskDlg').window('close'); teskGrid(); }); function ...

  5. 封装Socket.BeginReceive/EndReceive支持Timeout简介

    .NET中的Socket类提供了网络通信常用的方法,分别提供了同步和异步两个版本,其中异步的实现是基于APM异步模式实现,即BeginXXX/EndXXX的方式.异步方法由于其非阻塞的特性,在需考虑程 ...

  6. win7 重启 IIS.

    步骤 1,打开 "控制面板",并将右上角的"查看方式"设置为 "大/小图标". 2,选择 "管理工具": 3,打开 In ...

  7. ios9基础知识总结(foundation)笔记

    类:NSObject .NSString.NSMutableString.NSNumber.NSValue.NSDate.NSDateFormatter.NSRange.Collections:NSS ...

  8. self和super之间的区别

    关于 self 和 super 之间的区别, 首先要了解  1, self  是什么 :super 是什么.2,[ super init] 做什么.3,为什么要 self =  [super init ...

  9. 深入研究MiniMVC之后续篇

    今天在园子看到<深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的>之后,本来是不打算开博来续这个后传,不过,在那边回了个评论之后, ...

  10. jQuery自学笔记(三):jQuery动画效果

    jQuery隐藏和显示: 使用 hide( ) 和 show( ) 方法来隐藏和显示 HTML 元素: 语法: $(selector).hide(speed,callback); $(selector ...