菜鸟教程小白 发表于 2022-12-11 19:28:38

ios - 在自定尺寸单元中按比例分布的 UIStackView


                                            <p><p>我在水平堆栈 View 中有两个标签。标签将 <code>numberOfLines</code> 设置为 0,因此它们将无限换行,垂直内容压缩阻力设置为 1000,因此它们将始终是它们的全高,水平压缩阻力设置为 250,因为我希望它们能够被缩小,并且 Content Hugging 设置为 1000(两个轴,因为我总是希望框架拥抱标签)。见:</p>

<p> <a href="/image/cTMBG.png" rel="noreferrer noopener nofollow">Interface Builder screenshot</a> </p>

<p>那么堆栈 View 是自调整单元格中的唯一项目。它被限制在顶部、底部、前导和尾随边距。堆栈 View 具有与标签相同的压缩阻力/内容拥抱。</p>

<p>在运行时,在我的 cellForRowAt indexPath 函数中,我将两个标签设置为不同长度的文本。而且由于我在其他地方读到过这里的布局可能是一个问题,所以我也这样做:</p>

<pre><code>    cell.contentView.setNeedsLayout()
    cell.contentView.layoutIfNeeded()
</code></pre>

<p>但是,当我运行时,我最初看到了一些奇怪的行为。但是当我滚动时,事情开始看起来不错。似乎问题与细胞重用有关,但我不知道出了什么问题。</p>

<p> <a href="/image/Uxl33.png" rel="noreferrer noopener nofollow">Simulator Screen Shots</a> </p>

<p>在左侧 - 初始负载。请注意,值标签被完全切断,在第二个单元格中,比例间距似乎根本不起作用 - 与名称标签相比,值标签非常窄。</p>

<p>在右侧 - 我滚动到列表底部并返回顶部后的表格。这正是我所期望的:标签根据其内在内容大小按比例排列。但是我怎样才能在不滚动的情况下获得这种行为呢?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我相信您最大的问题是水平 StackView,您的宽度是根据堆叠的内容动态计算的。将 StackView 限制为特定宽度,根据您的宽度限制,更大的工作变成了如何计算内容的宽度。然后你会抛出无限的线条,这使得动态宽度更具挑战性,因为必须有一些阈值。</p>

<p>我建议为 FieldName 或 FieldValue 定义一个宽度,无论是常量还是基于父宽度百分比的相对宽度。我很确定你的拥抱和压缩只会互相争斗,因为 FieldName 有时可能比 FieldValue 长,有时恰恰相反。</p>

<p>您必须在某处设置硬限制。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在自定尺寸单元中按比例分布的 UIStackView,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/43351901/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/43351901/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在自定尺寸单元中按比例分布的 UIStackView