Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Can';t更改搜索栏方法中的UITableView框架_Ios_Uitableview - Fatal编程技术网

Ios Can';t更改搜索栏方法中的UITableView框架

Ios Can';t更改搜索栏方法中的UITableView框架,ios,uitableview,Ios,Uitableview,我有一个视图控制器,它完全被UINavigationBar和UITableView占据。当用户点击UITableView中的搜索栏时,我想隐藏导航栏并允许表视图完全占据屏幕。这是我的密码: - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { NSLog(@"typing text"); navBar.hidden = YES; [tableview setFra

我有一个视图控制器,它完全被UINavigationBar和UITableView占据。当用户点击UITableView中的搜索栏时,我想隐藏导航栏并允许表视图完全占据屏幕。这是我的密码:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    NSLog(@"typing text");
    navBar.hidden = YES;
    [tableview setFrame:CGRectMake(0, 20, 320, 568)];
}

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    NSLog(@"clearing text");
    navBar.hidden = NO;
    [tableview setFrame:CGRectMake(0, 64, 320, 504)];
}

但是,外观/框架更改代码不起作用。另一方面,我知道这些方法正在被调用,因为nslog会显示出来。有人能提供任何解决方案吗?

您应该使用搜索显示控制器(UISearchDisplayController类)来实现搜索功能

搜索显示控制器管理搜索栏和显示数据搜索结果的表视图的显示。我相信它还附带了您试图在上面创建的功能

本指南非常有用:

请尝试以下方法:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    NSLog(@"typing text");
    [self.navigationController setNavigationBarHidden:YES animated:YES];
    [self.tableView setFrame:CGRectMake(0, 20, 320, 568)];
}

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    NSLog(@"clearing text");
    [self.navigationController setNavigationBarHidden:NO animated:YES];
    [self.tableView setFrame:CGRectMake(0, 64, 320, 504)];
}

添加动画标志可以纠正问题。希望这有帮助

使用此代码时,表视图集框架仍不工作。如果您使用的是interface builder,请确保您的表视图已连接,因为我刚刚尝试了它,它对我有效。让我知道这是否是问题所在。我正在使用UISearchDisplayController。但是,我没有使用UINavigationController。正如我所说,视图控制器只包含一个UINavigationBar和一个UITableView(其中包含一个搜索显示控制器)。