1

보기 중 하나가 탐색 컨트롤러에 푸시 될 때 탐색 막대가 5 초 동안 표시된 다음 navigationBarHidden을 TRUE로 설정합니다. 나중에 사용자가 화면에서 탭하면 navigationBarHidden 값을 토글합니다. 그러나 내비게이션 막대 id가 숨겨 지거나 보이게됨에 따라,보기는 이러한 동작에 대해 각각 위아래로 점프합니다.보기가 숨겨져있을 때 탐색 막대가 숨겨 짐

막대가 숨겨져 있거나 표시 될 때보기가 점프하는 것을 방지 할 수있는 방법이 있습니까?

감사와 안부,

답변

3

Hetal 당신은 setNavigationBarHidden: 또는 setNavigationBarHidden:animated:를 사용하고 있습니까?

시도 [navigationController setNavigationBarHidden:NO animated:YES];.

문제가보기 크기를 변경하는 경우보기 자체에서이를 고려해야합니다. 즉 두 가지 크기를 모두 처리 할 수 ​​있어야합니다.

+0

애니메이션은 아이폰에 있지만 아이 패드에서 작동하는 것 같다. 왜 그런 생각이 드나요? – CedricSoubrie

5

동일한 문제가 있습니다. 내 프로젝트에서 그것은보기가 스크롤보기이기 때문입니다. 보기가 스크롤보기 또는 테이블보기 인 경우 다음을 시도 할 수 있습니다.

아래 코드를 컨트롤러에 추가합니다.

self.automaticallyAdjustsScrollViewInsets = NO; 

희망이 있으면 도움이 될 것입니다.

+0

감사합니다. 그것은 콜렉션 뷰를 가지고 나를 돕는다. –

1

이전 대화 였지만 이전에 작동하는 코드로 iOS 11에서 문제가 발생했습니다. Google에서 계속해서 얻은 첫 번째 결과였습니다.

필자의 경우 내비게이션 컨트롤러가있는보기 컨트롤러가 있습니다. 뷰에는 스크롤 뷰가 포함됩니다.

스크롤보기가 확대 된 경우 탐색 막대 숨기기/표시 애니메이션 후에 스크롤 위치가 점프됩니다.

설정 self.automaticallyAdjustsScrollViewInsets = NO/false (iOS 10을 통해 작동하지 않음)이 작동하지 않았습니다.

주위를 둘러 보면서 UIScrollView에 contentInsetAdjustmentBehavior라는 새 속성이 있음을 알았습니다.

원하는 영향을 주려면이 값을 "never"로 설정해야합니다 (즉, 탐색 막대를 표시/숨길 때 스크롤보기 위치가 변경되지 않음).

는 신속 그것은 다음과 같습니다 self.scrollView?.contentInsetAdjustmentBehavior = .never

+0

어떻게 네비게이션 바의 맨 위로 스크롤 뷰를 확장 시켰 는가? (네비게이션 바가 숨겨져있을 때 스크롤 뷰의 크기가 바뀌기 때문에 점프가되지 않는다)? – Matt

+0

광산이 스토리 보드에 내장되어 있으며, 필자는보기 컨트롤러의 "가장자리 확장"설정에 대해 위, 아래 및 불투명 한 가장자리 아래에 세 개의 체크 상자가 모두 선택되어 있습니다. – Devin

관련 문제