2011-12-25 65 views
0

我有一個控制器,頂部有一個搜索欄,當用戶輸入時,在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 

} 

回答

2

我有可能是同一個問題:是的UISearchBar嵌套UIScrollView的,所以,當搜索結果是shown-這是不可能的滾動父視圖。 ..我很困惑,但我知道(UISearchDisplayCtrl private api)UISearchDisplayController鎖定所有父滾動視圖(母狗)。

,這樣你們應該添加類別UISearchDisplayController +自定義:

@implementation UISearchDisplayController (Custom) 

- (void)_disableParentScrollViews { 
} 

- (void)_enableParentScrollViews { 
} 

@end 
相關問題