検索バーが最上部にあるコントローラがあり、ユーザーが入力すると、その下に自動補完された検索結果がUIScrollViewに表示されます。検索バーを使用しているときにUIScrollviewがフリーズする
問題: 結果は表示されますが、ユーザーはこれらの結果をスクロールできません。スクロールビューはフリーズしています。スクロールする唯一の方法は、検索バーで[キャンセル]を押すことです。 「検索」をタップするとキーボードは非表示になりますが、それでもスクロールビューはフリーズします。
希望: ユーザーが入力しているとき、検索結果は自動完成しています。任意の時点で、ユーザはこれらの結果を通じてをスクロールできます。彼らはスクロールするためにキャンセルを押す必要はありません。
画面に収まるよりも多くの結果があります。これは、コンテンツが画面よりわずかに大きいという問題ではありません。
CancelButtonClickedまたはSearchButtonClickedで何も特別:
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
searchBar.text = @"";
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[searchBar resignFirstResponder];
[NSThread detachNewThreadSelector:@selector(fetchSearchResult:) toTarget:self withObject:searchBar.text];
}
- (void)searchBar:(UISearchBar *)searchBar
textDidChange:(NSString *)searchText {
if([searchBar.text length] >=3){
[mySpinner startAnimating];
[NSThread detachNewThreadSelector:@selector(fetchSearchResult:) toTarget:self withObject:searchBar.text];
}
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
self.searchDisplayController.searchResultsTableView.hidden = YES;
// This occurs when user starts entering text
// We want to keep the background area dark
}