2013-02-11 41 views
6

Tôi có một UITableView với số searchDisplayController được triển khai. Tôi cóẨn UITableView khi searchResultsTableXem hiển thị

tableView.backgroundColor = [UIColor clearColor]; 

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

Khi tôi nhập văn bản trong lĩnh vực tìm kiếm, kết quả tìm kiếm được hiển thị tốt, nhưng như là nền tảng của bảng kết quả là trong suốt, tôi nhìn thấy tableview tôi và trên tableview bảng kết quả tìm kiếm được hiển thị. Tôi muốn ẩn số tableView khi searchField bắt đầu chỉnh sửa. Tôi đã thử

-(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; 
} 

Nhưng nó ẩn thanh tìm kiếm bằng bảngView. Làm thế nào để sửa chữa nó?

+0

đâu u thêm UISearchBar ??? trên UITableView ??? – iPatel

+0

có, tôi đã kéo một UISearchDisplayController và thêm thanh tìm kiếm vào tableView – tausun

+0

cảm ơn bạn rất nhiều, nó đã hoạt động. – tausun

Trả lời

2

Đầu tiên tôi biết rằng bạn thêm searchDisplayController trên UITableView .

Remove nó hãy và Thêm UISearchDisplayController của bạn trên của bạn View Controller không phải trên UITableView, beacuse nếu bạn ẩn UITableView sau đó UISearchDisplayController cũng ẩn vì bạn đã thêm UISearchDisplayController trên UITableView.

Cảm ơn :)

0

trước hết là làm cho ổ cắm bảng và kết nối nó với Bảng sau đó Hãy thử dòng mã này

tableView.hidden=TRUE; 

nó sẽ làm việc ....

+0

tableView đã là một lối thoát và được kết nối. Và tôi đã làm điều tương tự bạn đã đăng. – tausun

2

Bạn có thể thiết lập các nguồn dữ liệu cho tableView theo cách như vậy mà nó trả về 0 phần khi giao diện tìm kiếm có thể nhìn thấy:

- (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> 
} 

Và sau đó thay vì che giấu của bạn xem bảng, bạn có thể làm [tableView reloadData] để ẩn tất cả nội dung. Sau đó, sau khi tìm kiếm xong, hãy tải lại chế độ xem bảng một lần nữa để hiển thị lại nội dung.

Tải lại chế độ xem bảng sẽ đặt lại tất cả các ô xem bảng và bù đắp nội dung của chế độ xem bảng, do đó, có thể không phải là ý tưởng hay khi thực hiện điều đó trong một số trường hợp.

Ngoài ra, bạn có thể thử để lặp qua tất cả các tế bào có thể nhìn thấy quan điểm của bảng và ẩn chúng như thế:

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

Tôi nghĩ về quá trình này trước đó, nhưng tôi cần một giải pháp đơn giản hơn. Cám ơn phản hồi của bạn. – tausun

Các vấn đề liên quan