菜鸟教程小白 发表于 2022-12-12 21:36:39

ios - 使用带有半透明导航栏的 UISearchDisplayController 时变暗的区域错位


                                            <p><p>当我将导航栏切换为半透明时,我的 UISearchDisplayController 发疯了。</p>

<p>变暗区域错位了 64 像素,结果表中的第一行也是如此。
我知道如何修复 resultTableView 错位,但我找不到修复暗区框架的方法。</p>

<p>奇怪的是,当半透明设置为 YES 时,我发现我的主视图位于 origin.y = 64.0f。
它发生在 viewDidLoad、viewDidAppear 之间的某个地方。如果我改变它,它会起作用,但导航 Controller 中 View 之间的转换会被破坏。</p>

<p> <img src="/image/zazvR.png" alt="enter image description here"/> </p>

<p>=============</p>

<p>解决的问题:extendedLayoutIncludesOpaqueBars</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>检查搜索栏的 AutoLayout/AutoResizingMask 设置。</p>

<p>同时确保您没有手动修改栏的框架,因为系统会尝试将栏设置为沿暗色 View 和结果 TableView 的位置。</p>

<hr/>

<p>当您将 <code>translucent</code> 属性和 <code>automaticallyAdjustsScrollViewInsets</code> 设置为 <code>YES</code>(默认)时:a)View 在导航栏下被拉伸(stretch),并且 b ) 一个顶部 <code>contentInset</code> 被添加到底层 <code>UIScrollView</code> (表格 View 是一个子类)。</p>

<p>我的猜测是,由于某种原因,您的情况只有 b) 发生。您可以尝试通过以下方式解决它:</p>

<ul>
<li>清除<code>自动调整ScrollViewInsets</code>。</li>
<li>从 ScrollView 中移除自动添加的 <code>contentInset</code>。</li>
<li>通过设置 <code>extendedLayoutIncludesOpaqueBars</code> 将 Controller 设置为 a) 即使使用不透明条。</li>
</ul></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用带有半透明导航栏的 UISearchDisplayController 时变暗的区域错位,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23080208/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23080208/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用带有半透明导航栏的 UISearchDisplayController 时变暗的区域错位