转换UISearchbar

时间:2014-02-12 11:48:01

标签: ios animation transform uisearchbar

我在搜索栏下面有一个带有tableView的搜索栏。当用户点按搜索栏进行搜索时,我想全屏显示。但我无法将框架设置为UISearchBar的原点。  我是这样做的。

-(void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller {
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
    [ [UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

    [self.topBarView setHidden:YES];
    [UIView animateWithDuration:1.0
                          delay:0.0
                        options:0
                     animations:^{
                         [self.searchBar setFrame:CGRectMake(0.0,0.0, self.searchBar.frame.size.width,
                                                             self.searchBar.frame.size.height )];

                     }
                     completion:^(BOOL completion){
                     }];
    [self.searchBar setNeedsDisplay];




}

}

enter image description here

enter image description here 我隐藏了搜索栏上方的所有视图,我将原点设置为0,0 在第二张图片中,顶部栏消失,但搜索栏停留在其位置。它应该在顶部。 如果有人能够发现问题就会很棒。 我也在使用自动布局这会导致任何问题吗?

2 个答案:

答案 0 :(得分:0)

使用searchbar display controller.it将实现

enter image description here

答案 1 :(得分:0)

试试这个。 添加搜索栏& searchDisplay控制器到您的控制器。

UISearchBar * searchBar; UITableView * tableView; UISearchDisplayController * searchController;

 // Create table view
_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];
_tableView.delegate         = self;
_tableView.dataSource       = self;
_tableView.backgroundColor = [UIColor whiteColor];
_tableView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
[self.view addSubview:_tableView];

// Create search bar
_searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.view.bounds.size.width, 44.0f)];
_searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
_searchBar.delegate         = self;
[self.view addSubview:_searchBar];
[_searchBar sizeToFit];

// Create search controller
_searchController = [[UISearchDisplayController alloc] initWithSearchBar:_searchBar contentsController:self];
_searchController.searchResultsDataSource = self;
_searchController.searchResultsDelegate   = self;
_searchController.delegate                = self;

然后您可以执行此操作,以便searchBar成为响应者&显示键盘。

[_searchBar becomeFirstResponder];

希望有所帮助。