2010-01-29 4 views
1

UITearchView를 UITableView.tableHeaderView에 배치했습니다. 그러나 첫 번째 섹션 헤더에 볼 수있는 맨 위를 배치하여 searchBar를 덮습니다. 나는 tableBar를 드래그 할 때만 searchBar를 볼 수 있습니다. 반은 덮어서 tableView 스크롤을 놓으면 다시 볼 수 없게 될 것이기 때문에 선택할 수 없습니다. 도와주세요. UISearchBar가 tableViewHeader로 덮여 있습니다.

다음

내있는 UITableViewController있는 viewDidLoad 방법에 배치됩니다 :

UISearchBar *theSearchBar = [[UISearchBar alloc] init]; 
theSearchBar.delegate = self; 
self.searchBar = theSearchBar; 
[theSearchBar release]; 

self.tableView.tableHeaderView = self.searchBar; 

결과는 다음 스크린 샷입니다 : http://imagebin.ca/view/6qNiwHR.html

답변

0

나는 tableHeaderView이 검색 창을 넣어하는 가장 좋은 장소가 아니다라고 생각합니다. 나는 보통 UISearchDisplayController를 사용

searchController = [[UISearchDisplayController alloc] 
        initWithSearchBar:theSearchBar contentsController:self]; 
searchController.delegate = self; 
searchController.searchResultsDataSource = self; 
searchController.searchResultsDelegate = self; 

그것은 꽤 솔직하고 (이 경우, 대리인/데이터 소스에서이를 구현하기 위해 컨트롤러가) 검색에 대한 몇 가지 기능을 제공합니다.

나는 보통 펜촉에서 그것을하지만 난 당신이 당신의 ViewController에 할당한다고 생각 :

self.searchDisplayController=searchController; 

그리고는보기를 표시하지 않는 경우, 당신은 직접있는 tableView에보기를 추가한다 .

참조를 확인하거나 문제가 있는지 물어보십시오.

+0

정말 고마워요. 심지어 컨트롤러가 있다는 것을 깨닫지 못했습니다. 이제 이걸 시험해 볼거야. – Sukima

+1

적어도 3.0 이후로'searchDisplayController'는 읽기 전용 속성이므로이 방법으로 설정할 수 없습니다. –

5

사이징 문제였습니다.

[theSearchBar sizeToFit]; 

모든 것을 완벽하게 보이게 : 나는 설정까지에서 다음 코드를 배치 a tutorial을 발견했다.

은 이미 설정된 UISearchBar을 사용하므로 문제가 해결되지 않습니다.

관련 문제