2017-10-02 1 views
1

필자는보기 컨트롤러에서 시차 형식 스크롤 효과 (또는 신축성있는 머리글)를 만들었습니다.'내비게이션 막대를 스 와이프에서 숨기기'가 반환되지 않습니다.

저는 Windows 여백에 고정되어있는 uiscrollview가 있습니다. 이 안에는 스크롤 뷰에 0 개의 상수 제약으로 고정되어 있고 동일한 너비로 설정된 뷰가 있습니다. 그 안에는 내용이 있습니다. 내용의 맨 위에는 이미지가 있으며 이는 두 개의 제약 조건을 사용하여 창 상단에 고정됩니다 (안전 영역 안내). 첫 번째는 상수 = 0 우선 순위 = 750입니다. 둘째는 상수 < = 0 우선 순위 = 1000입니다.

이것은 작동합니다 .. 내가 위로 스크롤 할 때 위로 스크롤합니다. 위에서 아래로 스크롤하면 이미지가 늘어나고 뒤로 돌아옵니다.

질문 : 사용자가 스크롤 할 때 탐색 표시 줄을 구현하여 숨길 수도 있습니다. 이것은 내가 위로 스크롤 할 때 작품을 좋아합니다 (탐색 모음의 페이드를 숨겨진까지 애니메이션)

override func viewDidAppear(_ animated: Bool) { 
     navigationController?.hidesBarsOnSwipe = true 
    } 

,하지만 난 다시 탐색 모음 아래로 스크롤 할 때 반환하지 않습니다 : 내가보기 컨트롤러에이 코드를 추가했습니다. 나는 창 상단에 고정 된 이미지에 어떻게 든 숨겨져 있다고 가정합니다. 하지만 탐색 막대를 조정/다시 부착하려면 어떻게해야합니까?

엑스 코드 (9) - 빠른 4

+0

수 https://stackoverflow.com/questions/40667985/how-to-hide-the-navigation-bar-and-toolbar-as-scroll-down-swift-like-mybridge/40670196# 중복 40670196 – Joe

답변

0

은 도움이 될 수 아래 코드를 사용해보십시오.

delegateUIScrollView으로 설정하고 scrollViewDidScroll 대리자 메서드를 구현해야합니다.

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    let scrollOffset: Float = Float(scrollView.contentOffset.y) 
    if scrollOffset < 0 { 
     navigationController?.hidesBarsOnSwipe = false 
     navigationController?.setNavigationBarHidden(false, animated: true) 
    } 
    else { 
     navigationController?.hidesBarsOnSwipe = true 
    } 
} 
+0

이렇게하지는 않습니다. 탐색 바를 아래로 스크롤하면 멋지게 미끄러 져 내려 가지 않을 때 충분히 아래로 스크롤하면 갑자기 전체 높이로 나타납니다. – Lee

+0

귀하의 요구 사항에 따라 사용자 정의 할 수있는 논리를 제공합니다. – iPatel

관련 문제