2010-06-30 3 views
4

То, что я хочу достичь, это UISearchBar, который перемещается вверх и закрывает UINavBar и содержит кнопку отмены справа от нее. Все идет хорошо, пока я не используйте следующую строку кода:UITableView не прокручивается с UISearchBar

searchDC = [[[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self] autorelease]; 

Что в конечном итоге происходит является UITableView просто не будет прокручиваться, но все остальное функции, как и ожидалось. Если я удалю эту строку, моя панель навигации будет видна, и панель поиска просто сидит ниже нее, также не будет кнопки отмены.

Любые идеи?

код для рисования панели поиска:

self.navigationItem.title = @"Search"; 
searchBar = [[[UISearchBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.view.bounds.size.width, 44.0f)] autorelease]; 
searchBar.autocorrectionType = UITextAutocorrectionTypeNo; 
searchBar.autocapitalizationType = UITextAutocapitalizationTypeNone; 
searchBar.keyboardType = UIKeyboardTypeAlphabet; 
searchBar.delegate = self; 
[searchBar becomeFirstResponder]; 

tableView.tableHeaderView = searchBar; 
tableView.tableHeaderView.frame = CGRectMake(0.f, 0.f, 480.f, 44.f); 
searchDC = [[[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self] autorelease]; 
searchDC.searchResultsDataSource = self; 
searchDC.searchResultsDelegate = self; 
searchDC.searchResultsTableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
searchDC.searchResultsTableView.scrollEnabled = YES; 

overlayView.frame = CGRectMake(0, 50, 320, 480); 
[self.view addSubview:overlayView]; 
[self.view bringSubviewToFront:overlayView]; 

ответ

1

Не достаточно информации, чтобы ответить на этот вопрос. Вам нужно показать код UIViewController или UINavigation Controller (как .h, так и .m), где вы настраиваете UISearchDisplayController.

EDIT:

Вы реализации этого совершенно неправильно. Apple, имеет большой пример того, как реализовать эту http://developer.apple.com/iphone/library/samplecode/TableSearch/Introduction/Intro.html

+0

Мои извинения, я исправил исходное сообщение –

0

От документации компании Apple,

Delegate for the search display controller (delegate), which responds to events such the starting or ending of a search, and the showing or hiding of the search interface.

Установите delegate к вашему UITableViewController

searchDC.delegate = self; 

Также добавьте searchDC-х searchBar к заголовку tableView

[self.tableView setTableHeaderView:searchDC.searchBar]; 
Смежные вопросы