IT TIP

iOS 11에서 스크롤하지 않고 탐색 막대에 검색 막대 표시

itqueen 2020. 11. 19. 22:42
반응형

iOS 11에서 스크롤하지 않고 탐색 막대에 검색 막대 표시


navigationItem.searchControlleriOS 11의 UITableViewController 속성에 UISearchController를 연결하고 있습니다 . 이것은 잘 작동합니다. 멋진 iOS 11 스타일의 검색 창을 사용할 수 있습니다.

그러나 시작시 검색 표시 줄을 표시하고 싶습니다. 기본적으로 사용자는 검색 창을 보려면 테이블보기에서 위로 스크롤해야합니다. 이것이 어떻게 가능한지 아는 사람이 있습니까?

여기에 이미지 설명 입력 여기에 이미지 설명 입력

왼쪽 : 출시 후 기본 상황. 오른쪽 : 검색 표시 줄이 표시됩니다 (위로 스크롤하여). 오른쪽 스크린 샷과 같이 시작 후 검색 표시 줄을 표시하고 싶습니다.

hidesSearchBarWhenScrolling내 탐색 항목 의 속성 을 false 로 설정하여 검색 창을 표시 할 수 있음을 이미 발견했습니다 . 그러나 이로 인해 아래로 스크롤해도 검색 표시 줄이 항상 표시됩니다.


다음은 스크롤 막대를 처음에 표시 한 다음 스크롤 할 때 숨길 수 있도록합니다.

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    if #available(iOS 11.0, *) {
        navigationItem.hidesSearchBarWhenScrolling = false
    }
}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    if #available(iOS 11.0, *) {
        navigationItem.hidesSearchBarWhenScrolling = true
    }
}

를 사용하여 isActive내가 원하는 작업을 수행하지 않았으므로 스크롤 막대가 활성화되고 (취소 버튼 표시 등) 내가 원하는 것은 표시되는 것뿐입니다.


에 searchController를 추가 한 후 속성 isActive을로 설정할 수 있습니다 .truenavigationItem

다음과 같이 :

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    searchController.isActive = true
}

참고 URL : https://stackoverflow.com/questions/46239883/show-search-bar-in-navigation-bar-without-scrolling-on-ios-11

반응형