2017년 6월 12일 월요일

Xamarin.Forms : iOS 에서 앱과 상단 디바이스 상태영역이 겹치는 문제 해결


자마린으로 아이폰 앱을 만들면 이렇게 타이틀이 디바이스 상태역역과 겹쳐 버린다.

일반적으로 페이지 로드 하는 구문을 작성하고, 안드로이드 앱에서 보면...


이렇게 정상적으로 보이지만, 아이폰 앱에서 보면...


이렇게 상단바와 앱의 내용이 겹쳐 버린다.
원래 안겹쳤지만, iOS 7 부터 였던가? 그때 부터 앱 영역이 저 위쪽까지 확대 되었다.
공간을 넓게 쓸수 있도록 배려해준건 고마운데, 그럴려면 좀 저 상태바를 지워주던가...


딱히 저걸 안쓸 방법이 없으므로, 그냥 상단에 Padding 을 잡아 준다. (딱 20px)


그러면 이렇게 딱 분리가 되는데... 문제는...


자마린은 하나의 소스로 여러 디바이스를 작업하는 툴이다 보니, 적용할 필요가 없는 안드로이드 앱에도 저 Padding 이 적용되어 버린다.

답답하지만, 원래 그런거니 어쩔수 없다.
그냥 iOS 일때만 적용되게 만드는 수밖에...


이렇게 페이지 로딩 하는 순간에 iOS 인지 여부를 체크해서, iOS 일때만 패딩을 적용시켜 주면, 각각의 디바이스 모두 정상적으로 보인다.