2017-09-15 9 views
0

iPhone X를 지원하도록 애플리케이션을 업그레이드하고 있습니다. 테이블 뷰의 헤더에 검색 막대를 추가하고 안전 영역 내에 두려면 어떻게해야합니까? 다음은 현재 검색 창을 만드는 방법입니다.iphone x : 검색 영역을 안전 영역 내에 두십시오.

let searchController = UISearchController(searchResultsController: nil) 
func buildSearchBar() { 
    self.searchController.searchResultsUpdater = self 
    self.searchController.hidesNavigationBarDuringPresentation = false 
    self.searchController.dimsBackgroundDuringPresentation = false 
    self.searchController.searchBar.sizeToFit() 
    self.tableView.tableHeaderView = searchController.searchBar 

    self.definesPresentationContext = true 
} 

답변

1

'안전 지대'란 무엇을 의미하는지 명확하지 않습니다. 표보기는 스크롤 할 수 있으므로 검색 막대가 화면의 어느 부분에도 반드시 있어야하는 것은 아닙니다. 그것은 센서 영역 뒤에서 그리고 위로 스크롤 될 수 있습니다.

그러나 네이티브 앱은 검색 표시 줄을 표의 머리글로 사용하지 않습니다. 그들은 그것을 탐색 바에 넣었습니다. 당신도 똑같이해야합니다. searchControllernavigationItem으로 설정하여 탐색 모음에 검색 표시 줄을 놓습니다.

1

이 항목은 동영상 Building Apps for iPhone X에서 명시 적으로 논의됩니다. 심지어 탐색 컨트롤러의 부재, present는 -ing를

let searchController = UISearchController(searchResultsController: nil) 
searchController.searchResultsUpdater = self 
searchController.obscuresBackgroundDuringPresentation = false 

if #available(iOS 11, *) { 
    navigationItem.searchController = searchController 
    searchController.isActive = true 
} else { 
    present(searchController, animated: true) 
} 

(그런데 : (. Designing for iPhone X도 좋은 비디오)

결론은, 애플은 네비게이션 컨트롤러를 사용하고 거기에 그것을 보여주는 제안 검색 컨트롤러를 테이블 머리글로 설정하는 대신 안전 영역 밖으로 스크롤하지 못하게 할 수 있습니다.

관련 문제