2016-09-15 5 views
2

큰 두통을 일으키는 문제가 발생했습니다.텍스트 필드를 조작 할 때 UISearchBar가 이동합니다.

Interface Builder에서 나는 tableview 만있는 장면이 있습니다. 이 서브 클래스의 컨트롤러는 UITableViewController입니다. 나는 50의 높이와 함께 그 꼭대기에서 볼 수있는 또 다른 장면을 보았습니다. 아래는 궁극적으로 목록이나지도를 보유하는 컨테이너보기입니다. 컨트롤러는 UIViewController 하위 클래스입니다. 다음은 위의 이미지에서 볼 수있는 목록이 완전히 다른 테이블과 뷰 컨트롤러

enter image description here

하는 것으로 ... 그것은 시뮬레이터에서의 모습입니다. 검색 창 컨트롤러는 도시 또는 우편 번호로 위치를 검색하는 데 사용됩니다. 검색 창 컨트롤러의 테이블보기는 다른 목록을 덮어 씁니다. 검색 테이블에서 위치를 선택하면 해당 위치의 영역이 사설 웹 서비스를 사용하여 관심 지점 목록을 검색하는 다른 컨트롤러로 보내집니다.

위에서 언급 한보기에 검색 창을 추가하려면 다음 방법을 호출합니다.

- (void)setupSearchView { 
    self.searchTableViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LocationSearchTable"]; 
    self.searchController = [[UISearchController alloc] initWithSearchResultsController:self.searchTableViewController]; 
    self.searchController.searchResultsUpdater = self.searchTableViewController; 
    [self.searchController.searchBar sizeToFit]; 
    self.searchController.searchBar.tag = 9189; 
    self.searchController.searchBar.placeholder = @"Search by city or ZIP code"; 
    [self.searchView addSubview:self.searchController.searchBar]; 
    [[self.searchView viewWithTag:9189] becomeFirstResponder]; 
    self.searchController.hidesNavigationBarDuringPresentation = false; 
    self.searchController.dimsBackgroundDuringPresentation = true; 
    self.definesPresentationContext = true; 
} 

내가 true로 설정 self.definesPresentationContext와 텍스트 필드에을 클릭

는 검색 창은 그 위에 큰 공백을 떠나, 탐색 모음의 정확한 높이를 아래로 떨어진다. self.definesPresentationContext가 false의 경우

definesPresentationContext = true

후 행동과 결과는 다르다. 이 경우 검색 필드를 클릭하면 모든 것이 잘 보입니다. 그러나 유형으로 시작하면 탐색 컨트롤러가 흰색으로 덮여 있습니다. 검색 창은 위치를 변경하지 않습니다. Reveal을 사용하면 탐색 모음이 스택에서 뒤로 밀린 것을 볼 수 있습니다. 여기에 내가 무엇을 놓치고

self.definesPresentationContext = false

... 그처럼 보이는 무엇인가?

+0

자세히보기 ... 테이블 배경은 항상 나머지 테이블 레이어보다 64 픽셀 높습니다. –

+0

어떻게 해결 했습니까? –

답변

1

동일한 문제가있는 경우 viewController의 viewDidLoad에서 다음 코드 줄을 사용해보십시오.

self.extendedLayoutIncludesOpaqueBars = true