菜鸟教程小白 发表于 2022-12-13 09:33:40

ios - UITableViewCell 中的大小类


                                            <p><p>在我的 iOS 8 应用程序中,我有一个自定义 <code>UITableViewCell</code>,它是使用自动布局在 .xib 文件中定义的。我已经设置了 <code>UITableView</code> 以便它使用自调整大小的单元格,这一切都很好。</p>

<p>在我的单元格的 .xib 文件中,我设计了“Any x Any”大小类,它可以工作。我还想为“Compact x Any”尺寸类提供不同的设计,所以我将该布局添加到我的 .xib 中。</p>

<p>当我在 iPhone 设备(真实设备或模拟器)上运行应用程序时,我发现单元格的大小总是像使用我的“Any x Any”布局一样,但单元格的内容总是像它使用我的“Compact x Any”尺寸类。无论方向如何,都会发生这种情况。</p>

<p>在 iPad 设备(真实或模拟器)上,它总是使用“Any x Any”布局来确定大小和布局,我认为这是正确的。</p>

<p>有没有其他人试过这个并让它在 iPhone 上工作?感觉我正在尝试做的事情不应该是一个不寻常的要求。</p>

<p>总而言之,我认为布局在所有设备上都正确发生,但自调整单元逻辑似乎不尊重它所在的大小类。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这似乎是一个已知的错误,在这里描述:<a href="http://openradar.appspot.com/17799811" rel="noreferrer noopener nofollow">rdar://17799811</a> .</p>

<p>解决方法是在我的 ViewController 的 <code>viewDidAppear</code> 方法中调用 <code>tableView.reloadData()</code>。它确实有效,但是有一个丑陋的重绘,您会在以正确的大小重绘之前暂时看到压扁的 View 内容。</p>

<p>此外,在 iPhone 6 Plus 上,当您将方向从纵向更改为横向时,垂直尺寸类别会从紧凑变为常规,因此我还需要在这种情况下重新绘制。我可能会捕捉到方向变化,但相反(我认为这是更“正确”的方法)我选择在我的 ViewController 中覆盖较新的 <code>traitCollectionDidChange</code> 方法。我只是在那里调用 <code>tableView.reloadData()</code> 。在这种情况下,变化非常顺利,我对此很满意。当表格 View 首次显示时,这只是最初的丑陋重绘让我感到厌烦。</p>

<p>更新:我发现将我的一个垂直约束的优先级放宽到 999 使重绘变得不那么难看。单元格的高度仍然变化很大,但至少内容没有改变大小。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UITableViewCell 中的大小类,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26277492/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26277492/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UITableViewCell 中的大小类