0

我想在點擊取消時改變uisearchDisplaycontroller的寬度。添加我的代碼以供參考...resize uisearchdisplaycontroller當點擊取消按鈕時的寬度

mySearchBar = [[UISearchBar alloc]init]; 
[mySearchBar setDelegate:self]; 
resName_search = [[UISearchDisplayController alloc] initWithSearchBar:mySearchBar contentsController:self]; 
resName_search.delegate = self; 
resName_search.searchResultsDataSource = self; 
resName_search.searchResultsDelegate = self; 
[self.view addSubview:resName_search.searchBar]; 
[resName_search.searchBar setFrame:CGRectMake(0.0, barOriginY+79.0, 106.0, 40.0)]; 

它顯示好......但是當我搜索的項目,然後點擊取消按鈕...它沒有調整..

-(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar 
    { 
    btnCuisine.hidden =YES; 
    btnService.hidden =YES; 
    imgDropDwn1.hidden =YES; 
    imgDropDwn2.hidden =YES; 
    [resName_search.searchBar setShowsCancelButton:YES animated:NO]; 
    [resName_search.searchBar setFrame:CGRectMake(0.0, barOriginY+79.0, 320.0, 40.0)]; 
    return YES; 
    } 
-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
    { 
    NSLog(@"size changed 106.0"); 
    [resName_search.searchBar setShowsCancelButton:NO animated:NO]; 
    [resName_search.searchBar setFrame:CGRectMake(0.0, barOriginY+79.0, 106.0, 40.0)]; 
    btnCuisine.hidden =NO; 
    btnService.hidden =NO; 
    imgDropDwn1.hidden =NO; 
    imgDropDwn2.hidden =NO; 
    } 

我也添加該問題的圖像鏈接PLZ參考,解決我的問題image Link

回答

1

只需將self.searchDisplayController.searchBar.translatesAutoresizingMaskIntoConstraints設置爲YES,並將setActive設置爲NO。但translatesAutoresizingMaskIntoConstraints爲YES並不重要,我認爲......,而搜索搜索欄

-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
{ 
NSLog(@"size changed 106.0"); 
self.searchDisplayController.searchBar.translatesAutoresizingMaskIntoConstraints = YES; 
[self.searchDisplayController setActive:NO animated:YES]; 
[resName_search.searchBar setShowsCancelButton:NO animated:NO]; 
[resName_search.searchBar setFrame:CGRectMake(0.0, barOriginY+79.0, 106.0, 40.0)]; 
// mySearchBar.frame =CGRectMake(0.0, barOriginY+79.0, 106.0, 40.0); 
btnCuisine.hidden =NO; 
btnService.hidden =NO; 
imgDropDwn1.hidden =NO; 
imgDropDwn2.hidden =NO; 
} 

自來水錶的背景無法調整所以加searchDisplayControllerDidEndSearch委託

-(void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller 
{ 
NSLog(@"size changed 106.0"); 
// [resName_search.searchBar removeFromSuperview]; 
self.searchDisplayController.searchBar.translatesAutoresizingMaskIntoConstraints = YES; 
[self.searchDisplayController setActive:NO animated:YES]; 
[resName_search.searchBar setShowsCancelButton:NO animated:NO]; 
// [self.view addSubview:resName_search.searchBar]; 
[resName_search.searchBar setFrame:CGRectMake(0.0, barOriginY+79.0, 106.0, 40.0)]; 
// mySearchBar.frame =CGRectMake(0.0, barOriginY+79.0, 106.0, 40.0); 
btnCuisine.hidden =NO; 
btnService.hidden =NO; 
imgDropDwn1.hidden =NO; 
imgDropDwn2.hidden =NO; 
}