iOS范围栏添加到UISearchBar下后不显示

iOS范围栏添加到UISearchBar下后不显示,ios,objective-c,uitableview,uisearchbar,Ios,Objective C,Uitableview,Uisearchbar,我在搜索栏下添加了范围栏。但是,范围栏不会出现。有什么想法吗?请帮忙 - (UISearchBar *)searchBar{ if (!_searchBar) { _searchBar=[[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, 24)]; [_searchBar setBackgroundImage:[UIImage imageNamed:@"ic_searchBar_

我在搜索栏下添加了范围栏。但是,范围栏不会出现。有什么想法吗?请帮忙

- (UISearchBar *)searchBar{
    if (!_searchBar) {
        _searchBar=[[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, 24)];
        [_searchBar setBackgroundImage:[UIImage imageNamed:@"ic_searchBar_bgImage"]];
        [_searchBar sizeToFit];
        [_searchBar setPlaceholder:@"Search"];
        [_searchBar.layer setBorderWidth:0.5];
        _searchBar.showsScopeBar = YES;
        _searchBar.scopeButtonTitles = [NSArray arrayWithObjects:@"All", @"Near Me", @"Coming Soon", nil];

        [_searchBar.layer setBorderColor:[UIColor colorWithRed:229.0/255 green:229.0/255 blue:229.0/255 alpha:1].CGColor];
        [_searchBar setDelegate:self];
        [_searchBar setKeyboardType:UIKeyboardTypeDefault];
        [[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setDefaultTextAttributes:@{
                                                                                                     NSFontAttributeName: [UIFont fontWithName:@"Bitter" size:14],
                                                                                                     }];
    }
    return _searchBar;
}
编辑: 我在Tableview标题中添加了它。如何更改以使其显示

- (UITableView *)tableView{
    if (!_tableView) {
        _tableView=[[UITableView alloc]initWithFrame:CGRectMake(0.0, 0.0, kScreenWidth, kScreenHeight-49.0) style:UITableViewStylePlain];
        [_tableView setDelegate:self];
        [_tableView setDataSource:self];

        _tableView.tableHeaderView=self.searchBar;

        UIView *v = [[UIView alloc] initWithFrame:CGRectZero];
        [_tableView setTableFooterView:v];

    }
    return _tableView;
}

我试着运行你的代码,范围栏对我来说很好

所以,虽然我无法从代码中理解为什么它不应该出现,但我会在这里提供一些调试技巧,以帮助您了解可能导致此问题的其他错误

当应用程序处于调试运行模式(iOS模拟器)时,请尝试以下操作:

  • XCode->调试菜单->查看调试
  • 按“捕获视图层次结构”
  • 它应该在左边有一个树结构,显示您的表视图。在右边,它将显示您的视图截图
  • 在左侧树上,查找
    UISearchbar
  • 在其层次结构下,搜索以下类型的对象:
    \u UISearchBarScopeBarBackground
    。然后是
    UISegmentedControl
    ,它具有与每个范围文本对应的段
请参阅下图(应出现在您的范围层次结构中):

  • 如果
    UISegmentedControl
    在此处显示良好,但在右侧不可见,请检查其是否被其他视图/表视图本身隐藏。一些帧调整应该可以解决这个问题

  • 如果
    UISegmentedControl
    本身没有出现在左侧,则您似乎有严重的问题。可能您的插座没有初始化,您可能需要检查您的表视图是否正确初始化,以及所有设置。在任何情况下,这种情况都不太可能发生,只有在模拟器屏幕上看不到任何东西时才有可能发生


您在哪里向视图添加了
搜索栏
?感谢Nirav,我在那里没有看到任何UI分段控件。我们将进一步调查此事。谢谢你的提示。最后,我使用单独的UISegmentedControl来做我需要它永久显示的事情。奇怪的是,它不起作用。你向苹果公司提交雷达文件了吗?因为我想知道UISearchbar是否影响了它。现在我应用了单独的UISegmentedControl及其工作!很高兴知道,但它至少应该在那里,即使没有显示。你终于重新发明了轮子!你看到这个了吗?