带有范围栏的 UITableView 上的 UISearchBar 在其他 UI 项上调整自身大小

Posted

技术标签:

【中文标题】带有范围栏的 UITableView 上的 UISearchBar 在其他 UI 项上调整自身大小【英文标题】:UISearchBar on UITableView with scope bar resizes itself over other UI items 【发布时间】:2015-05-28 09:19:44 【问题描述】:

好的,所以我在 UISearchBar 下方有一个 UITableView。上面只是一些 UILables 和 UIButtons,然后是 UINavigationBar。

UISearchBar 启用了范围栏。每当我点击搜索栏时,都会出现以下奇怪的行为(我已禁用屏幕键盘,但焦点位于 UISearchBar 文本字段中):

通常看起来像这样:

这真的很令人沮丧,我不知道为什么会这样。有没有人经历过类似的事情并找到了解决方案?

谢谢!

【问题讨论】:

检查您的搜索栏及其在 nib 文件中的范围。 你是如何将搜索栏和标题标签添加到UITableView的? UITableView 和 UISearchBar 是独立的实体,我刚刚将 UISearchBar 的委托设置为 UITableView。标题标签只是添加到 UIView 上的 UILabel。在 Storyboard 文件中,UISearchBar 很合适,但不显示 Scope 栏。 尝试在视图层次结构的标题视图下方添加搜索栏。 【参考方案1】:

这是一个麻烦,但这是我能想到的最好的。我只是将以下内容放在 viewWillAppear 中,然后手动创建了一个 44px 高的背景图像,并将其放在情节提要的 UISearchBar 后面。

-(void)viewWillAppear:(BOOL)animated

    [self.searchBar sizeToFit];
    for (UIView *subview in self.view.subviews) 

        for(UIView *subView2 in subview.subviews)

            for(UIView *subView3 in subView2.subviews)
                if ([[[subView3  class] description] isEqualToString:@"UISearchBarBackground"]) 
                   [subView3 removeFromSuperview];
                   break;
                
            
        
    

【讨论】:

以上是关于带有范围栏的 UITableView 上的 UISearchBar 在其他 UI 项上调整自身大小的主要内容,如果未能解决你的问题,请参考以下文章

带有搜索栏的 UITableView 作为 inputView

点击空的 UITableView 退出搜索栏

无论如何用数组填充 UITableView 但保留复选标记?

带有上下文操作栏的自定义列表视图上的选定项目

带有黑色半透明状态栏的 iPhone 上的 Web 应用程序:视口高度似乎是错误的

带有 UITapGestureRecognizer 的 UIView 上的 UITableView(单元格选择不起作用)