2013-02-11 4 views
6

나는 searchDisplayController이 구현 된 UITableView입니다. 내가 검색 결과가 잘 표시되어있는 검색 필드에 텍스트를 입력 할 때 내가searchResultsTableView가 표시 될 때 UITableView를 숨기기

tableView.backgroundColor = [UIColor clearColor]; 

self.searchDisplayController.searchResultsTableview.backgroundColor = [UIColor clearColor]; 

을 가지고 있지만, 결과 테이블의 배경을 투명 한, 내가보고하고 내 tableviewtableview에 검색 결과 테이블이 표시됩니다. searchField가 편집을 시작할 때 tableView을 숨기려고합니다. 시도했습니다

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller 
shouldReloadTableForSearchString:(NSString *)searchString 
{ 
    [tableView setHidden:YES]; 
    [self filterContentForSearchText:searchString 
           scope:[[self.searchDisplayController.searchBar scopeButtonTitles] 
             objectAtIndex:[self.searchDisplayController.searchBar 
                selectedScopeButtonIndex]]]; 

    return YES; 
} 

그러나 tableView를 사용하여 searchBar를 숨 깁니다. 그것을 고치는 방법? 우선

+0

유 UISearchBar를 추가 할 경우 ??? UITableView에 ??? – iPatel

+0

예, UISearchDisplayController를 드래그하고 검색 막대를 tableView에 추가했습니다. – tausun

+0

정말 고마워요. – tausun

답변

2

먼저 난 당신이 UITableViewsearchDisplayController를 추가 할 것을 알고 .... 다음 코드

tableView.hidden=TRUE; 

가 작동이 라인을 시도해보십시오 테이블 콘센트을 표 와 연결 .

은 제발 제거하고 다음 UITableView을 숨길 경우 UITableView에 UISearchDisplayController을 추가하기 때문에 UISearchDisplayController도 숨길 beacuse, 당신의 UISearchDisplayController 당신의 보기 컨트롤러하지에 UITableView에 추가합니다.

감사합니다 :)

0

+0

tableview는 이미 콘센트에 연결되어 있으며 내가 게시 한 것과 동일한 작업을 수행하고 있습니다. – tausun

2

을 설정할 수 있습니다 검색 인터페이스가 표시되는 경우는 0 섹션을 반환하는 등의 방법으로 tableView에 대한 데이터 소스 : 숨어 대신 다음

- (NSInteger) numberOfSectionsInTableView: (UITableView *) tableView 
{ 
    if (self.searchDisplayController.active && 
     (tableView != self.searchDisplayController.searchResultsTableview)) 
     return 0; // return 0 for bottom table view if search interface is active 
    else 
     return <your usual number of sections> 
} 

그리고 당신의 테이블보기를 사용하면 [tableView reloadData]을 사용하여 모든 콘텐츠를 숨길 수 있습니다. 그런 다음 검색이 끝나면 다시 한 번 테이블보기를 다시로드하여 내용을 다시 표시합니다.

테이블보기를 다시로드하면 모든 표보기 셀과 표보기의 내용 오프셋이 재설정되므로 어떤 경우에는 그렇게하는 것이 좋지 않을 수 있습니다.

양자 택일로, 당신은 그런 그들을 테이블 뷰의 눈에 보이는 모든 셀을 반복하고 숨을 시도 할 수 있습니다 :

for (UITableViewCell *cell in tableView.visibleCells) 
{ 
    cell.hidden = YES; 
} 
+0

이 프로세스는 더 일찍 생각했지만 간단한 솔루션이 필요했습니다. 귀하의 회신에 감사드립니다. – tausun