菜鸟教程小白 发表于 2022-12-12 18:09:19

ios - 自动布局降低某些 View 的高度


                                            <p><p>我有以下看法:
<img src="/image/Mpeu5.png" alt="enter image description here"/> </p>

<p>对于 iPhone 4 尺寸的屏幕,我想保持灰色顶部和绿色下部按钮的大小相同,分别固定在顶部和底部。中间的按钮网格应缩小尺寸以适应新的显示。</p>

<p>由于 View 尺寸小了 88 像素(548 - 460 = 88),并且有 4 行按钮,我会以编程方式将每个按钮减少 22 像素并将其移动到位。</p>

<p>但如果可能的话,我想通过自动布局来实现。</p>

<p>如何指定约束以保持与顶部和底部的距离相同,并仅降低 View 的高度?</p>

<p>我已经将它们全部固定在顶部和底部,但这只会导致:</p>

<p> <img src="/image/mMAqM.png" alt="enter image description here"/> </p>

<p>任何帮助,不胜感激!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以使用自动布局来做到这一点。基本上,您应该将灰色标题和调用按钮页脚锚定到 superView 的顶部和底部(分别),并将每个按钮锚定到它的邻居。然后指定每个按钮应与第一个按钮具有相同的高度。</p>

<p>这是约束的可视化格式语言(我认为这比试图解释约束要清楚一些)。 <code>headerView</code> 是顶部的灰色条,<code>footerView</code> 是包含您的绿色按钮的 View ,并且这些按钮已正确命名。</p>

<pre><code>V:|--0--0--0---0--|
</code></pre>

<p>请注意,<code>buttonPlus</code> 的高度约束的优先级较低。这是因为您的页眉和页脚 View 之间的空间可能不会在按钮之间平均分配。将优先级设置为低于“必需”(优先级 == 1000)允许加号按钮比一个按钮略短或略高,但自动布局仍会尝试使其尽可能接近。</p>

<p>水平尺寸的创建类似于垂直尺寸。请注意,这里 <code>buttonTwo</code> 的大小可以与其他大小稍有不同,以防水平空间不均等。</p>

<pre><code>H:|-0--0--0--0-|
</code></pre>

<p>一个 View 的高度/宽度等于另一个 View 的计算成本很高,并且可能需要多次传递。最好只对第一列按钮设置上述约束,然后约束其他列,使每个按钮的顶部和底部与其所在行的第一个按钮对齐。您可以通过在为每一行创建水平约束时传递 <code>NSLayoutFormatAlignAllTop|NSLayoutFormatAlignAllBottom</code> 作为选项参数来做到这一点,并且 <code>NSLayoutFormatAlignAllLeft| NSLayoutFormatAlignAllRight</code> 创建垂直约束时。</p>

<p>编辑:这仍然可以通过 IB 完成。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 自动布局降低某些 View 的高度,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/21291884/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/21291884/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 自动布局降低某些 View 的高度