Ich füge Suchleiste auf Tabellenkopf und floating es in scrollViewDidScroll
Methode, aber wenn ich ohne Klick auf Suchleiste scrollen (dh ich gehe zur Ansicht und scrollen) dann Suchleiste nicht oben bleiben, aber es blättern up mit Tisch aber sobald ich auf Suchleiste klicken und auf Suchleiste Löschtaste klicken und dann, wenn ich die Tabelle blättern, Suchleiste bleibt top.here ist mein Code-iOS Fix Suchleiste oben auf dem UITableViewController?
-(void)viewDidLoad {
[super viewDidLoad];
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
searchBar.delegate = self;
searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
searchDisplayController.searchResultsDelegate = self;
UIView *tableHeaderView = [[UIView alloc] initWithFrame:searchDisplayController.searchBar.frame];
[tableHeaderView addSubview:searchDisplayController.searchBar];
[tableView setTableHeaderView:tableHeaderView];
isSearching = NO;
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
UISearchBar *searchBar = searchDisplayController.searchBar;
CGRect searchBarFrame = searchBar.frame;
if (isSearching) {
searchBarFrame.origin.y = 0;
} else {
searchBarFrame.origin.y = MAX(0, scrollView.contentOffset.y + scrollView.contentInset.top);
}
searchDisplayController.searchBar.frame = searchBarFrame;
}
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller {
isSearching = YES;
}
-(void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller {
isSearching = NO;
}
Bitte beachte, dass ich verwende UITableViewController
Unterklasse und möchte nicht in UIViewController
ändern. Jede Hilfe wäre willkommen.
Edit: ich auch Abschnittsheader in diesem UITableViewController
Verwendung in anderen UITableViewController
keine Header-Abschnitt ist und dieser Code arbeitet fine.Is dies ein Problem mit Abschnittskopf und Tabellenkopf zusammen?
sollten Sie versuchen, es zum Abschnitt Header –
hinzufügen, überprüfen Sie bitte meine Frage bearbeitet. – Bharat
Der TableHeader verschwindet beim Scrollen vom Bildschirm, der Section Header verlässt den Bildschirm nur beim Scrollen und Sie kommen zum nächsten Abschnitt. Wenn Sie nur 1 Abschnitt haben, ist der beste Weg, die searchBar innerhalb des Abschnitts Header hinzuzufügen, sonst können Sie es nicht innerhalb des UItableViewController tun. –