菜鸟教程小白 发表于 2022-12-12 16:28:18

ios - 自动布局:包含 UILabel + UIButton 的标题 View


                                            <p><p>我正在自定义 ViewController 的标题 View ,以便显示(从左到右):</p>

<ol>
<li>一个与默认标题标签非常相似的 UILabel,</li>
<li>一个信息类型的 UIButton,放置在标签后面固定距离处。</li>
</ol>

<p>我希望,随着标签水平增长以容纳更长的文本,它会将按钮推向更远的右侧(标签和按钮之间的水平空间保持不变),而整个标题 View 会自行调整大小以包含标签和按钮,同时保持在导航栏的中心。</p>

<p><strong>这就是我所做的(界面生成器):</strong></p>

<ol>
<li>将 UINavigationItem 拖入导航栏;</li>
<li>将一个 UIView 拖到导航项中,作为标题 View ;</li>
<li>将标签和按钮拖入标题 View 、定位和调整大小。</li>
<li><p>设置以下约束:</p>

<p>标签 -> 标题 View :</p>

<ol>
<li>领先于容器边距</li>
<li>在容器中垂直居中</li>
</ol>

<p>按钮 -> 标题 View :</p>

<ol>
<li>容器边距的尾随空间</li>
<li>在容器中垂直居中</li>
</ol></li>
</ol>

<p>(标题 View 本身不受约束)</p>

<p>但是,标题 View 保持固定大小。如果在运行时我设置的标题比 Storyboard 中设置的占位符长,它会被修剪(“...”):</p>

<p> <a href="/image/vkkKg.png" rel="noreferrer noopener nofollow"><img src="/image/vkkKg.png" alt="enter image description here"/></a> </p>

<p>如果我设置一个较短的,标签和按钮之间会出现额外的空间:</p>

<p> <a href="/image/JOXcJ.png" rel="noreferrer noopener nofollow"><img src="/image/JOXcJ.png" alt="enter image description here"/></a> </p>

<p><strong>或者</strong>,如果我添加以下约束:</p>

<p>标签 -> 按钮:
   1.水平间距</p>

<p>...现在按钮完全被标签隐藏了:</p>

<p> <a href="/image/6NcxC.png" rel="noreferrer noopener nofollow"><img src="/image/6NcxC.png" alt="enter image description here"/></a> </p>

<p>我怎样才能让标题 View 水平增长(同时保持居中),以便它适合(灵活)标签和(固定)按钮,并保持它们之间的空间固定?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>导航项未设置为直接处理此问题。您需要使用约束来设置标题 View 的框架,然后将其添加到 nab 项。因此,每次更改文本时,您都需要通过删除 View 、调整其大小然后再次添加它来做一些小 Action 。关键API是<code>systemLayoutSizeFittingSize</code>。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 自动布局:包含 UILabel &#43; UIButton 的标题 View ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32901644/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32901644/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 自动布局:包含 UILabel &#43; UIButton 的标题 View