티스토리 뷰

iOS

iOS ) prefersHomeIndicatorAutoHidden 외

Zedd0202 2019. 4. 20. 12:49
반응형


안녕하세요 :) Zedd입니다.

오늘도 문서를 보다가 첨보는? 이게 모지..하는 메소드들이 있어서 공부해보려고 해요. 




바로 요것들!!

HomeIndicator가 뭐지..?

바로 위에 저거...빨간 네모박스 안에 있는거...


공부하기 전에 소신발언 하나 한다

지문짱!!!!!!!!!!


암튼 저게 homeIndicator고 

보니까 저걸 가리고 뭐 어쩌고 저쩌고 하는 메소드인것 같네요.

뭔가 생긴게 statusBar관련 메소드들이랑 비슷하죠?

뭐 아는 사람은 알아보겠지..


암튼 3개밖에 없으니 하나씩 봅시다.



prefersHomeIndicatorAutoHidden

visual indicator를 숨길 수 있는지 여부를 나타내는 Bool을 반환합니다. 
왜 또 여긴 visual indicator야

암튼 함 해보자

 

ㅇㅇ Hidden하겠음

이거 하면 어떻게 되냐면


그냥 사라지는 것도 아니고 Fade로..

statusBar는 애니메이션이 3갠가 있었던거 같은데 여긴 따로 animation을 지정해줄 수 있는 프로퍼티는 없네요?


그냥 홈화면 가는 제스쳐는 똑같이 되고 다시 들어오면 또 애니메이션이 되면서 사라짐..

정의는 true면 시스템에서 이 indicator를 사라지도록 하고 false면 계속 보이는거임 기본값은 당연히 false겠죠?


이 메소드를 override하면 visual indicator 표시 어떻게 할건지 환경설정에 신호(signal)을 보냅니다. 

true를 리턴해도 indicator가 hidden될 수 있다고 보장 할 수는 없습니다.

엇...글쿤..


아 참고로 얘네는 statusbar랑 똑같은 느낌(?)이라는거 아시겠나요. 하나의 viewcontroller에만 적용되는겁니다. 



자 다음 프로퍼티 봅시다



childForHomeIndicatorAutoHidden


얘는 Container View Controller를 구현할 때, 자식 뷰ㅜ컨이 indicator를 표시할지 여부를 결정하는 프로퍼티에요. 

얘가 nil을 리턴하면 시스템은 현재 viewController의 prefersHomeIndicatorAutoHidden를 호출한다고 합니다.

왜 하필 컨테이너뷰지..?


아 이걸 예제로 만들긴 좀 그런데..지금 딱 제가하고 있는 프로재ㅔㄱ트가 컨테이너 뷰 써서 올리고싶은데 올리면 안될거같으니까 안올릴게요.

암튼 contentView있고 거기에 addChild해주고,,didMove해주고..암튼 그런 코드들 있죠?

이렇게 말하면 아무도 못알아듣겠지만..


containerView에 들어가는 자식 View Controller는 prefersHomeIndicatorAutoHidden를 true로 해도 indicator가 사라지지 않습니다. 


그럼 이 containerView를 가지고 있는 그 ViewController에서 



이런식으로 내가 indicator가 사라졌으면 하는 viewcontroller를 리턴하면 됩니다.

 저는 containerView이용해서 탭바 만든거라..이렇게 햐줬어요, 


이거 진짜 나 아니면 이해 못할 것 같은데......본인이 예제 만들어서 해보삼 근데 쓸일 별로 없을겁니다.


setNeedsUpdateOfHomeIndicatorAutoHidden()


statusBar랑 비슷하져ㅛ 진짜
ViewController가 홈 화면으로 돌아가기 위한 visual indicator와 관련된 환경설정을 했음을 UIKit에 알리는 메소드에요. 
View Controller의 prefersHomeIndicatorAutoHidden 또는 childForHomeIndicatorAutoHidden 메서드에서 반환 한 값을 변경하면이 메서드를 호출하여 UIKit에서 해당 메서드를 다시 호출해야 함을 알린다고 해요.

그니까 뭐 음..


이런 코드가 있다고 해볼게요.  setNeedsUpdateOfHomeIndicatorAutoHidden가 지금 주석처리 되어있죠 ?
이 상태에서 실행을 하면. 저 isHomeIndicatorHidden이 true가 되어도 indicator가 사라지지 않는 것을 볼 수 있습니다.



이렇게 해주면?


근데 뭔가 좀 느리게 사라지는 것 같은 느낌적인 느낌..


자 넘나리 간단하게 끝났네..오늘 본 프로퍼티들과 메소드들은 모두 iOS11부터 사용가능하니 참고하세요.

그리고 주말 잘보내세요 XD


반응형