菜鸟教程小白 发表于 2022-12-13 17:07:14

ios - AutoLayout 约束和 UIPopoverPresentationController


                                            <p><p>AutoLayout 似乎每一步都在与 View 大小作斗争。</p>

<p>我有一个用于用户输入的 ViewController ,而 AutoLayout 似乎坚定不移地决定让我的 View 高 667 像素。</p>

<p>我玩过许多布局设置变体、许多内容拥抱和抗压缩组合,无论我做什么,AutoLayout 都能找到将 View 拉伸(stretch)到 667 像素高的方法。</p>

<p>我使用 Reveal,一个显示布局框架、约束等的应用程序 (revealapp.com)
它向我展示了 UIPopoverPresentationController 正在添加自己的自动调整大小约束。</p>

<p>这是我的 View 在呈现时的大致外观...</p>

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

<p>请注意,即使我将“接受”UIButton 设置为 30 像素高和 1000 优先级,AutoLayout 仍在拉伸(stretch)它以满足其奇怪的 667 像素高要求。</p>

<p>当我运行应用程序时,我的弹出框看起来是这样的......</p>

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

<p>当我让 Reveal 检查正在运行的应用程序并将其缩小到弹出框时,这就是 Reveal 显示的内容...</p>

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

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

<p>注意 UIPopoverPresentationController 本身有这些约束。</p>

<p>如何控制 UIPopoverPresentationController 所设置的约束??</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>尝试使用 <a href="https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/#//apple_ref/occ/instm/NSString/boundingRectWithSize:options:attributes:context:" rel="noreferrer noopener nofollow"><code>boundingRectWithSize(_:options:attributes:context:)</code></a> <code>NSString</code> 来确定标签的高度。</p>

<p>完成此操作后,您可以通过添加标签创建的任何额外高度来预测弹出框的大小。您可以使用它来设置您正在呈现的 ViewController 的 <code>preferredContentSize</code> 属性。 </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - AutoLayout 约束和 UIPopoverPresentationController,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/37999365/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/37999365/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - AutoLayout 约束和 UIPopoverPresentationController