调整大小UISearchDisplayController灰色黑色叠加层

Des*_*ond 7 iphone xcode uisearchbar uisearchdisplaycontroller ios

一旦你点击搜索栏,任何人都知道如何调整暗淡的黑色大小?

我点击时有问题取消了tableview将消耗然后动画消失.

我用它来调整我的结果tableview.

-(void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {
   tableView.frame =fTableView.frame;//CGRectMake(26, 100, 280, 310); //fTableView.frame;
    tableView.backgroundColor = [UIColor colorWithRed:243.0/255.0 green:236.0/255.0 blue:212.0/255.0 alpha:1];   
}
Run Code Online (Sandbox Code Playgroud)

单击搜索栏时,灰色叠加层已满,而不是我定义的大小.

在此输入图像描述

在此输入图像描述

单击取消按钮时,视图将重新开始. 在此输入图像描述

tom*_*n11 10

我结合了几个答案,以便移动暗淡的叠加帧.

1:覆盖UISearchDisplayController类

@interface MySearchController : UISearchDisplayController
Run Code Online (Sandbox Code Playgroud)

2:覆盖setActive函数

- (void)setActive:(BOOL)visible animated:(BOOL)animated
{
[super setActive: visible animated: animated];

//move the dimming part down
for (UIView *subview in self.searchContentsController.view.subviews) {
    //NSLog(@"%@", NSStringFromClass([subview class]));
    if ([subview isKindOfClass:NSClassFromString(@"UISearchDisplayControllerContainerView")])
    {
        CGRect frame = subview.frame;
        frame.origin.y += 10;
        subview.frame = frame;
    }
}

}
Run Code Online (Sandbox Code Playgroud)

3:将xib/storyboard搜索显示控制器从UISearchDisplayController更改为MySearchController


Wol*_*ert 1

我认为 searchDisplayController 拥有一个单独的表格视图,所以我的猜测是您需要调整该表格视图的大小。

大致如下:<yourSearchViewController>.view.frame =self.tableView.frame;

或者,如果您没有将其作为类变量,则在将其作为参数接收的方法中,例如:

-(void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {
   controller.view.frame = self.tableView.frame;
    tableView.backgroundColor = [UIColor colorWithRed:243.0/255.0 green:236.0/255.0 blue:212.0/255.0 alpha:1];   
}
Run Code Online (Sandbox Code Playgroud)

或者,您可能希望对其进行子类化并在本地覆盖其视图属性。

希望这可以帮助!