菜鸟教程小白 发表于 2022-12-12 18:06:37

ios - UISearchDisplayController 和 setDisplaysSearchBarInNavigationBar


                                            <p><p>我正在为 <code>UISearchDisplayController</code> 苦苦挣扎,希望有人可以帮助我。</p>

<p>所以基本上我有一个 <code>UINavigationBar</code> ,其中有一个“搜索”按钮。当有人点击“搜索”时,<code>UISearchDisplayController</code> 应该被激活并且 UISearchBar 应该出现在 <code>UINavigationBar</code> 中。在 SearchBar 旁边,我实现了一个“取消”按钮,它可以停用 <code>SearchDisplayController</code> 并将 <code>UINavigationBar</code> 重置为使用“搜索”按钮的标准。</p>

<p> <img src="/image/RLWEk.png" alt="Default UINavigationBar"/> </p>

<p>我的第一个问题是 <code>SearchBar</code> 与结果表或灰色覆盖之间的差距,而 <code>SearchDisplayController</code> 处于事件状态。</p>

<p> <img src="/image/a7LpE.png" alt="SearchBar activated"/> </p>

<p>第二个问题是我无法在点击取消后将我的 rightBarButtonItem 重置为默认图标(放大镜)。即使我尝试设置 <code>;</code> 也没有发生任何事情,它只是保留在“取消”按钮上。</p>

<p> <img src="/image/jB4s4.png" alt="after clicking Cancel"/> </p>

<p>这是我的实现:(UI 元素是通过我的 Storyboard添加的)</p>

<pre><code>- (IBAction)btnSearchClicked:(id)sender {
;
self.navigationItem.rightBarButtonItem = [ initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelEditing)];

;
;
;
;
}

-(void)cancelEditing
{
;
;
;
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好的,我想出了解决这两个问题的方法。</p>

<p>由于 <code>;</code> 期望 NavigationBar 是半透明的,所以出现了差距,所以我通过在 <code>btnSearchClicked 上启用半透明来解决问题</code> code> 并在取消时将其停用。</p>

<p>通过在访问 <code>setRightBarButtonItem</code> 属性之前停用 <code>cancelEditing</code> 中的 <code>setDisplaysSearchBarInNavigationBar</code> 解决了该按钮的问题。也许 <code>setDisplaysSearchBarInNavigationBar</code>-Option 会创建一个不响应 self.navigationItem 的新 NavigationBar。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UISearchDisplayController 和 setDisplaysSearchBarInNavigationBar,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/21234739/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/21234739/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UISearchDisplayController 和 setDisplaysSearchBarInNavigationBar