<i id='t506a'><div id='t506a'><ins id='t506a'></ins></div></i>

<acronym id='t506a'><em id='t506a'></em><td id='t506a'><div id='t506a'></div></td></acronym><address id='t506a'><big id='t506a'><big id='t506a'></big><legend id='t506a'></legend></big></address>

  • <span id='t506a'></span>
  • <tr id='t506a'><strong id='t506a'></strong><small id='t506a'></small><button id='t506a'></button><li id='t506a'><noscript id='t506a'><big id='t506a'></big><dt id='t506a'></dt></noscript></li></tr><ol id='t506a'><table id='t506a'><blockquote id='t506a'><tbody id='t506a'></tbody></blockquote></table></ol><u id='t506a'></u><kbd id='t506a'><kbd id='t506a'></kbd></kbd>
  • <dl id='t506a'></dl>

      <i id='t506a'></i>

          <ins id='t506a'></ins>

          <code id='t506a'><strong id='t506a'></strong></code>
          <fieldset id='t506a'></fieldset>

          1. iOS开发之AutoLayout中的Content Hugging Priority和 Content Compress

            • 时间:
            • 浏览:109
            • 来源:124软件资讯网

              本篇博客的内容也不算太庞大  ,算是AutoLayout的一些高级的用法 。本篇博客我们主要通过一些示例来看一下AutoLayout中的Content Hugging Priority以及Content Compression Resistance Priority这两个优先级  。下方我们先来简朴的看一下这两个优先级的涵义:

              • Content Hugging Priority:直译成中文就是“内容拥抱优先级”  ,从字面意思上来看就是两个视图  ,谁的“内容拥抱优先级”高 ,谁就优先围绕其内容  。稍后我们会凭据一些示例举行先容  。
              • Content Compression Resistance Priority:该优先级直译成中文就是“内容压缩阻力优先级”  。也就是视图的“内容压缩阻力优先级”越大  ,那么该视图中的内容越难被压缩  。而该优先级小的视图  ,则内容优先被压缩  。稍后我们也会通过响应的实例来看一下这个优先级的详细体现 。

              接下来我们就通过响应的实例来看一下这两个优先级的使用场景以及作用  。

              一、总述

              首先在第一部门我们先来整体的看一下Content Hugging Priority与Content Compression Resistance Priority这两个AutoLayout的优先级属性  。这两个属性是可以在Storyboard中直接设置的  ,选中要设置的控件  ,在右边约束一栏里边就有Content Hugging Priority以及Content Compression Resistance Priority的设置地方 。Content Hugging Priority的水平和竖直偏向的默认值都是250 ,而Content Compression Resistance Priority的水平和竖直的默认值是750 。我们可以在此对该值举行设置 。

              固然  ,在代码中也是可以设置这两个代码的优先级的  。下方是使用代码的方式为我们的控件设置响应的优先级而且我们可以获取到响应优先级的值  。详细代码如下所示:

              二、Content Hugging Priority

              接下来我们就来联合实例来看一下Content Hugging Priority的使用场景以及使用方式 。

              如果我们有一个需求  ,需要两个Label并列显示  ,我们暂且称之为Label1和Label2  。Label1和Label2中的显示内容是从网络获取的 ,而且内容长度不定  。我们要求优先显示Label1  。也就是说以Label1的宽度为准  ,不外Label1会有一个最大宽度  ,当Label1显示到最大宽度时 ,Label1的内容会被压缩  ,剩下的部门显示Label2  。固然  ,当Label1没有显示到最大值时  ,剩下的部门仍然显示Label2  。Label2显示不全的也会被压缩  。

              接下来我们根据上述的形貌添加响应的约束 ,首先我们为Label1添加约束 ,如下所示  。我们为Label1添加了Top、Left、Width和Height四个约束  ,这四个约束足以来确定该Label的位置了  。不外需要注重的一点该Label的Width是小于即是某一个值得  ,此处我们指定的Width <= 200  。也就是该Label的Width的最大值为200  。约束添加后如下所示:

              接下来我们来为并列第二个Label添加约束  。由于要求前面Label内容显示完成后  ,剩下的部门就显示右边Label的内容 ,以是我们为Label2添加了Left、Top、Right以及Height的约束  。固然Left是以右边的Label为基准的 ,而Right则是以父视图为基准的  。

              从下方截图中我们可以看出  ,有些约束添加完是红色的  ,这就是约束有冲突了  。也就是当前添加的约束不能确实当前控件的位置 。从上述的约束我们不难发现  ,横向来看  ,两个Label的宽度都是不确定的  ,以是会报错 。

              我们可以点击下方这个红色的报错箭头检察响应的报错信息  。点击该红色箭头会显示下方这个界面 ,该界面中会提醒响应的错误信息  。从下面的对话框中我们可以看到详细的错误信息是“Content Priority Ambiguity”  ,也就是说“内容优先级是模棱两可的”  。点击这个红色的圆圈  ,会给出响应的解决方案: