菜鸟教程小白 发表于 2022-12-13 00:49:19

ios - UISearchController searchBar 框架仅在第一次点击时调整大小


                                            <p><p>我刚刚在常规 UIViewController 中实现了一个 UISearchController,我遇到了一个奇怪的问题。</p>

<p>我有一个 UIView,它完全适合我希望 UISearchBar 采用的大小。在第一次启动 View 时,我将 UISearchBar 作为 SubView 添加到此 UIView。
但是当我启动它时, UISearchBar 不会占用其父 UIView 的大小——它只占用整个屏幕的宽度。 </p>

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

<p>如您所见,它与右侧的按钮重叠。</p>

<p>但是一旦我点击搜索栏并取消它,它就会调整到我想要的确切大小。</p>

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

<p>这可能是什么问题?我尝试将 SearchBar 中的 AutoLayout Constraints 添加到其父 View ,但它似乎没有改变任何东西。 不处理这个吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>UISearchController 的 View 行为确实很奇怪,但有一个简单的解决方法。 </p>

<ul>
<li>使用额外的容器 View </li>
<li>把 UISearchController 的 View 放进去</li>
<li>将 UISearchController 的 View 自动调整掩码设置为 UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight</li>
<li>将 UISearchController 的框架设置为容器的 View 边界</li>
</ul>

<p>此时 UISearchController.view 的大小不会超出 container.bounds。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UISearchController searchBar 框架仅在第一次点击时调整大小,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/43278343/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/43278343/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UISearchController searchBar 框架仅在第一次点击时调整大小