iOS开拓之AutoLayout中的Content Hugging Priority和 Conte

来源:http://www.boundlesssupremacy.com 作者:win7 人气:170 发布时间:2019-08-08
摘要:iOS开发之AutoLayout中的Content Hugging Priority和 Content Compression Resistance Priority解析,autolayouthugging 本篇博客的内容也不算太复杂,算是 AutoLayout 的局地尖端的用法。本篇博客我们根本通过有

iOS开发之AutoLayout中的Content Hugging Priority和 Content Compression Resistance Priority解析,autolayouthugging

本篇博客的内容也不算太复杂,算是AutoLayout的局地尖端的用法。本篇博客我们根本通过有个别示范来看一下AutoLayout中的Content Hugging Priority以及Content Compression Resistance Priority那七个优先级。下方我们先来简单的看一下那八个优先级的涵义:

  • Content Hugging Priority:直译成中文即是“内容拥抱优先级”,从字面意思上来看便是五个视图,什么人的“内容拥抱优先级”高,何人就先行环绕其内容。稍后大家会依照部分演示实行介绍。

  • Content Compression Resistance Priority:该优先级直译成普通话正是“内容减少阻力优先级”。也正是视图的“内容减弱阻力优先级”越大,那么该视图中的内容越难被减去。而该优先级小的视图,则内容优先被压缩。稍后大家也会通过相应的实例来看一下以此优先级的具体表现。

接下去大家就透过相应的实例来看一下这两个优先级的接纳景况以及作用。

 

 

一、总述

第一在首先部分大家先来全部的看一下Content Hugging PriorityContent Compression Resistance Priority这两个AutoLayout的事先级属性。那五个特性是能够在Storyboard中央直属机关接设置的,选中要设置的控件,在左边手约束一栏里边就有Content Hugging Priority以及Content Compression Resistance Priority的装置地点。Content Hugging Priority的水准和竖直方向的暗中认可值都以250,而Content Compression Resistance Priority的品位和竖直的暗许值是750。大家得以在此对该值进行设置。

  图片 1

 

自然,在代码中也是能够安装那三个代码的预先级的。下方是利用代码的秘诀为大家的控件设置相应的优先级并且大家得以获取到对应优先级的值。具体代码如下所示:

  图片 2

 

 

二、Content Hugging Priority

接下去我们就来构成实例来看一下Content Hugging Priority的选取意况以及使用方法。

假如大家有贰个急需,须求四个Label并称展现,大家姑且称之为Label1Label2Label1Label2中的显示内容是从网络获取的,而且内容长度不定。大家要求先行展现Label1。也便是说以Label1的肥瘦为准,可是Label1会有贰个最大幅面,当Label1出示到最大开间时,Label1的内容会被削减,剩下的片段显示Label2。当然,当Label1未有显获得最大值时,剩下的一部分依然突显Label2。Label2显示不全的也会被减去。

接下去我们遵照上述的陈述增多相应的约束,首先大家为Label1增加约束,如下所示。我们为Label1加多了Top、Left、Width和Height八个约束,那多个约束足以来分明该Label的岗位了。可是需求专注的一点该Label的Width是自愧比不上等于某一个值得,此处大家钦赐的Width <= 200。也正是该Label的Width的最大值为200。约束增加后如下所示:

  图片 3

 

接下去大家来为并列第二个Label增加约束。因为供给前边Label内容展现成功后,剩下的一对就显得左侧Label的故事情节,所以大家为Label2增添了Left、Top、Right以及Height的自律。当然Left是以侧边的Label为条件的,而Right则是以父视图为条件的。

  图片 4

 

从下方截图中大家得以看出,有个别约束增多完是丁卯革命的,那正是束缚有争辩了。也便是日前拉长的羁绊无法真的当前控件的地方。从上述的牢笼我们简单开掘,横一直看,多个Label的增进率都以不鲜明的,所以会报错。

  图片 5

 

咱俩能够点击下方那个革命的报错箭头查六柱预测应的报错音讯。点击该深紫箭头会展现下方那几个分界面,该分界面中会提醒相应的错误新闻。从上边的对话框中大家得以看出实际的错误新闻是“Content Priority Ambiguity”,也正是说“内容优先级是笼统的”。点击这么些革命的圆形,会付出相应的消除方案:

  • Decrease horizontal hugging of "Second Label" from 251 to 250 to make it grow before other views。

野趣大意就是说:供给减徐熙娣(英文名:Elephant Dee)女士econd Label的程度拥抱优先级,从明日的251换到250。换句话说,也正是将“Second Label”的Content Hugging Priority从251换到250后,下方的标题就能够被化解了。“to make it grow before other views”,那句话的情趣是下落这么些优先级目标是为着让该视图在其他视图在此之前生长。

翻译的多少拗口,大家来用大白话说一下。变成下方错误的由来是程度放置的多少个Label的肥瘦都不分明,况兼其内容围绕的预先级又是均等的,所以在运行是大家无法鲜明是先鲜明第三个Label的上升的幅度如故先分明第贰个Label的宽窄,消除方案是将右侧的Label的Content Hugging Priority的预先级调低,当然首先个Label的Content Hugging Priority相对就高了。所以侧面的Label会优先的拱卫其剧情,也便是说该Label会优先的规定其宽度。当左侧Label的大幅明确了,那么右侧Label的大幅相当于随着明确了,所以下方的荒唐也就缓慢解决了。

  图片 6

 

江湖正是大家将左侧的Label的Content Hugging Priority改成250后的结果。能够看到在此之前的报错被化解了。当然,也足以将左边手的Label的Content Hugging Priority的先行级修改成比侧边的高就能够。此处大家仅研商了Content Hugging的水准方向上的优先级,竖直方向上的先行级是平等的,在此就不做过多废话了。

  图片 7

 

地方约束增多完以及先行级加多完毕后,大家就能够看一下运转作效果果了。为了动态的看一下束缚的效果,我们为种种Label加多了三个Step控件,从凡尘运转效果大家轻便看出,该控件首若是用来决定对应Label的分寸的。下方的运营效果是契合大家此前的料想的。左侧的Label的长度是有多个最大值得,当左侧的Label展现成功后,右侧剩下的空间就浮现第三个Label的源委了。

  图片 8

 

 

三、Content Compression Resistance Priority (内容缩短阻力优先级)

聊完“内容拥抱优先级”后,接下去大家就来看一下Content Compression Resistance Priority剧情能减少排放少阻力优先级,从字面意思上看,该优先级越大则表达内容减弱阻力越大,也正是说内容越难被收缩。当四个Label并排彰显,而且显示器不足以呈现五个Label的保有剧情时,则会事先压缩“内容收缩阻力优先级”越小则先被减少。

我们照例采纳上一些的议程,从破绽相当多入手,在错误消除的进程中来认识一下以此“Content Compression Resistance Priority”。首先我们也是让两个Label并排展现,侧边包车型客车Label大家姑且称之为FirstLabel,左侧的Label大家则称之为SecondLabel。我们为FirstLabel增多的束缚有Top、Left、Height以及Width >= 50,大家为SecondLabel增加的封锁为Left(以First的Right为参谋)、Top、Right、Height以及Width>=102。下方截图便是我们抬高上述约束后的功力:

  图片 9

 

增加完上述约束后,大家在Storyboard中能够见见是会报错的。报错原因也很肯定“Content Priority Ambiguity”,也是内容优先级争执。用大白话解释正是水平方向上无法分明四个Label的增长幅度。当然点击柠檬黄小圆点也会交到相应的错误消除方案:

  • Decrease horizontal compression resistance of "Bottom Label2" from 750 to 749 to make it get clipped before other views。

其大概意思就是缩减第三个Label的水准回退阻力,将现行反革命的750修改成749,使得SecondLabel在其他视图此前被裁剪。此刻一经你点击该提示中的“Change Priority”按钮的话,该错误将会被修复。

  图片 10

 

为了直观的看一下该优先级的功能,我们增添了二个Switch开关来修改上述多个Label的优先级。当Switch开关展开时,FirstLabel的削减阻力优先级大于SecondLabel,开关关闭就反而了。具体代码如下所示:
  图片 11

 

修改完相应的谬误,以及丰裕完相应的代码后,接下去大家来看一下运转结果。当按钮打开时,前边的抗压缩阻力要超过前边的Label。而按钮关闭时前面包车型客车抗阻力优先级要当先前边的,运营作效果果如下所示。

  图片 12

 

由此上述示范的示范,应该对Content Hugging Priority以及Content Compression Resistance Priority有了直观的感想,本篇博客就先到那儿吧。下方是上述示范在Github上的分享链接,如下所示:

github共享链接:

 

Hugging Priority和 Content Compression Resistance Priority分析,autolayouthugging 本篇博客的剧情也不算太复杂,算是 AutoLayou...

笔者们依旧选择上有的的秘技,从漏洞比比较多出手,在错误化解的进度中来认知一下这几个“Content Compression Resistance Priority”。首先大家也是让多个Label并排呈现,左边的Label大家临时称之为FirstLabel,侧边的Label大家则称之为SecondLabel。大家为FirstLabel加多的封锁有Top、Left、Height以及Width >= 50,大家为SecondLabel增添的束缚为Left(以First的Right为参照)、Top、Right、Height以及Width>=102。下方截图正是我们增加上述约束后的功能:

为了直观的看一下该优先级的功用,大家加多了三个Switch开关来修改上述多个Label的预先级。当Switch开关展开时,FirstLabel的裁减阻力优先级大于SecondLabel,按键关闭就反而了。具体代码如下所示:
  图片 13

意思大意就是说:必要减徐熙娣(英文名:Elephant Dee)(Elephant Dee)econd Label的水平拥抱优先级,从今日的251换到250。换句话说,也正是将“Second Label”的Content Hugging Priority从251换到250后,下方的难点就能够被化解了。“to make it grow before other views”,那句话的意思是下落那几个优先级指标是为着让该视图在别的视图以前生长。

  图片 14

率先在首先局地大家先来完全的看一下Content Hugging PriorityContent Compression Resistance Priority这两个AutoLayout的预先级属性。那七个属性是足以在Storyboard中向来设置的,选中要安装的控件,在侧边约束一栏里边就有Content Hugging Priority以及Content Compression Resistance Priority的设置地点。Content Hugging Priority的品位和竖直方向的暗中同意值都以250,而Content Compression Resistance Priority的程度和竖直的暗中同意值是750。我们得以在此对该值进行设置。

上边约束增加完以及先行级增加完结后,大家就能够看一下运作效果了。为了动态的看一下封锁的效率,大家为每一个Label增加了二个Step控件,从红尘运转效果我们简单看出,该控件首要是用来决定对应Label的尺寸的。下方的运作效果是吻合我们前边的预想的。左侧的Label的长度是有三个最大值得,当侧边的Label彰显成功后,侧边剩下的长空就展现第二个Label的源委了。

 

 

  图片 15

 

 

经过上述示范的身体力行,应该对Content Hugging Priority以及Content Compression Resistance Priority有了直观的感想,本篇博客就先到那儿吧。下方是上述示范在Github上的享受链接,如下所示:

  图片 16

接下去大家按照上述的描述增添相应的约束,首先我们为Label1增加约束,如下所示。我们为Label1增加了Top、Left、Width和Height四个约束,那多少个约束足以来分明该Label的职位了。不过须要留心的一点该Label的Width是小于等于某多少个值得,此处我们钦定的Width <= 200。也正是该Label的Width的最大值为200。约束加多后如下所示:

  • Decrease horizontal hugging of "Second Label" from 251 to 250 to make it grow before other views。

 

  图片 17

 

 

  图片 18

一、总述

 

  图片 19

本篇博客的开始和结果也不算太复杂,算是AutoLayout的一对高等的用法。本篇博客大家第一通过有个别演示来看一下AutoLayout中的Content Hugging Priority以及Content Compression Resistance Priority那多少个优先级。下方大家先来大概的看一下那五个优先级的涵义:

 

  • Decrease horizontal compression resistance of "Bottom Label2" from 750 to 749 to make it get clipped before other views。

  图片 20

  • **Content Hugging

    Priority:直译成汉语便是“剧情拥抱优先级**”,从字面意思上来看便是多少个视图,什么人的“内容拥抱优先级”高,谁就先行环绕其内容。稍后大家会基于部分示范进行介绍。

  • **Content Compression Resistance

    Priority:该优先级直译成汉语便是“情节能减少排放少阻力优先级**”。也正是视图的“内容收缩阻力优先级”越大,那么该视图中的内容越难被削减。而该优先级小的视图,则内容优先被减去。稍后大家也会因而相应的实例来看一下以此优先级的具体表现。

本文由2020欧洲杯官方投注-2020欧洲杯官方投注网址发布于win7,转载请注明出处:iOS开拓之AutoLayout中的Content Hugging Priority和 Conte

关键词: 手机开发 iOS开发 IO

最火资讯