iOS Autolayout中的约束.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
iOS Autolayout中的约束摘 要:iOS中的Autolayout技术用于解决UI可视单元或元素的布局和排列问题并且能够可以完美的解决适配不同尺寸的屏幕以及解决横竖屏的问题,让编程不再枯燥无味,因此被越来越多的编程者所接受,Autolayout中的核心基础是约束,介绍了Autolayout中约束的研究意义,约束的类型和优先级,ContentSize约束,约束的装载方式和比较,最后对约束的使用提出了几点建议。关键词:iOS;Autolayout;研究1 Autolayout中约束的研究意义Autolayout自动布局技术在iOS6就已经推出了,但是因为很多人一开始不习惯使用xib编程,而是坚持使用代码布局控件,所以Autolayout并没有普及的太快。但是现在随着越来越多的人开始使用xib,怎样适配横竖屏和不同尺寸的屏幕,成了亟待解决的问题,好在两年前就已经推出并且日臻完善的xib Autolayout技术可以完美的解决。对于Autolayout而言,最为核心的基础就是约束。2 Autolayout中约束的类型对于Autolayout而言,最为核心的基础就是约束,在iOS 中分别有以下几类约束:NSLayoutConstraint,开放类。几乎是程序员最常用的约束。它用于设置view在view tree之间的关系,自身大小等。NSContentSizeLayoutConstraint,私有类。用于衡量view内容和大小相关的约束。比如Hugging和Compression,控制view的内容显示。NSAutoresizingMaskLayoutConstraint,私有类。由Autosizing mask转换到Autolayout系统中的约束表达。_UILayoutSupportConstraint,私有类。布局支撑约束,它包括Top和Bottom的约束,用于控制view的显示边界,例如,它限制view的顶端显示不会和状态栏重合。NSIBPrototypingLayoutConstraint,私有类。如果在Storyboard中添加了一个UI控件,且没有在Storyboard中添加任何约束,但是标注了要使用Autolayout,那么在实际的运行期,系统会默认为它添加NSIBPrototypingLayoutConstraint约束。NSContentSizeLayoutConstraint最主要的作用是和intrinsic size一起工作,通常这个约束和Layout约束共同决定view的显示方式。3 Autolayout中约束优先级约束优先级通常是形容一个约束重要性的指标,两个约束如果共同决定一个显示属性的显示,当二者发生了抵触的时候,优先级表示其中一个约束,相比另外一个而言,更加重要。优先级就是浮点数,通常用其整数表达。4 ContentSize约束Autolayout系统有根据显示内容来自适应尺寸的能力。这个能力是由,Intrinsic Content Size内容大小、content hugging约束、content compression约束来共同决定。Intrinsic Content Size保证了当view的内容变化后,自己适应内容的大小的描述。自定义View需要自己计算适合自己的intrinsic size。而imageview、label等含有内容控件(除了UITextView)都会自己计算“适合内容的Size”。Content Hugging抗拉伸属性。它其实是一个约束,它使得它本身的大小更加贴合显示的内容。例如:如果一个UIView的内容显示需要200的宽度,那么如果UIView本身有宽度约束(此约束设置宽度为400),此时若抗拉伸属性的优先级比宽度约束要高,View本身的大小就不会变化,反之就会被拉伸。Compression Resistance抗压缩属性。它的一切和抗拉伸相反。Layout Constraints Layout约束是程序员必须熟悉的。一个线性公式就说明了它的意义:view1.attr1=view2.attr2*multiplier + constant这里=可以是=,等。剩余就是描述Layout Constraint的生成和装载方式:生成方式比如:Layout Constraints的描述方式可以是原生NSLayoutConstraint来实现,也可以是VFL,也可以是自己封装的库。5 Autolayout中约束的装载方式(1)View形容它自己的约束(一元约束),添加到自己或者直系SuperView中。(2)View和View之间的约束,如果view之间是父子关系,添加到父亲上。如果view和view是兄弟关系,则添加到他们共同的父亲节点上。(3)View和View之间的约

文档评论(0)

ganpeid + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档