I want to add a SearchBar
to my TableView
. I just dragged the UISearchBar
to the header of an UITableView
in IB, and it scrolled with my UITableView
.
I changed to use UITableViewController
now, and when I drag an UISearchBar
in the header
of the UITableView
which is provided with the UITableViewController
, it doesn't show up at all.
Is there a trick?
Kind regards
You can do it programmatically
UISearchBar *tempSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 0)];
self.searchBar = tempSearchBar;
[tempSearchBar release];
self.searchBar.delegate = self;
[self.searchBar sizeToFit];
self.tableView.tableHeaderView = self.searchBar;
Hope this helps.
I get it to work by using two UITableViewDelegate Protocol methods –tableView:viewForHeaderInSection: and –tableView:heightForHeaderInSection: as given below.
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
if (section == 0) {
UISearchBar *tempSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 0)];
[tempSearchBar sizeToFit];
return tempSearchBar;
}
return [UIView new];
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section == 0) {
return 40.0f;
}
return 0.1f;
}
Hope it helps.
Whenever I define the searchbar in the nib, I dont add it to the table view's header on purpose. Instead I set it in the viewDidLoad function. Retterdesdialogs solution also works, so not sure why he hasn't got more votes.
- (void)viewDidLoad
{
[super viewDidLoad];
tableView.tableHeaderView = searchBar;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With