带有ViewController问题的UISearchDisplayController

时间:2015-07-01 12:56:51

标签: objective-c uitableview uisearchdisplaycontroller

我之前有一个带有导航控制器的ViewController,里面有一个TableView和其他元素。 tableView还有一个搜索栏,在场景中,除了主ViewController,我还有一个搜索显示控制器。

功能正常,但我有以下UI问题:

  1. 虽然我的主视图有黑色背景色(并且大多数元素都有黑色背景色),但当我向下拖动tableView时会出现一些空白区域。
  2. enter image description here

    我还有以下UI的初始设置

    -(void) viewWillAppear:(BOOL)animated{
        [super viewWillAppear:animated];
    
        self.view.backgroundColor = [UIColor blackColor];
        self.tableView.backgroundColor = [UIColor blackColor];
    
        self.searchDisplayController.searchResultsTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        self.searchDisplayController.searchResultsTableView.separatorColor = [UIColor blackColor];
        self.searchDisplayController.searchResultsTableView.separatorInset = UIEdgeInsetsMake(0, 12, 0, 12);
    
    
        [self.searchDisplayController.searchResultsTableView setBackgroundColor:[UIColor blackColor]];
        [self.searchDisplayController.searchContentsController.view setBackgroundColor:[UIColor blackColor]];
        self.searchDisplayController.searchBar.barStyle = UIBarStyleBlack;
        self.searchDisplayController.displaysSearchBarInNavigationBar = NO;
    }
    
    1. 当我搜索结果并在搜索栏之后向上拖动表格时,会有一个可以看到表格视图的小地方。
    2. enter image description here

      任何想法如何解决这个问题:(?

      修改更新: 两者都解决了从TableView中删除搜索栏。在此之后,另一个问题是搜索显示控制器的动画没有更新搜索栏。这是通过以下帖子解决的: UISearchBar animation issue

1 个答案:

答案 0 :(得分:2)

  1. 您必须将UIView背景颜色设置为黑色(不仅仅是UITableView颜色)。
  2. 您必须将表格视图放在UISearchBar下方,您可以通过编程方式或通过IB执行此操作。我推荐第二种选择。很简单。