본문 바로가기

iOS 개발 이야기

아래에서 반만 올라오는 창.

카톡 친구리스트에서 한명 선택하면 아래에서 슝 하고 올라오는 창.

윗부분은 반투명이고 아래에만 내용이 있다. (사진이 위에도 뜨는 경우도 있지만)

요런거 만드느라 삽질한 것 기록.

(나중에 또 비슷한 삽질 할 때 참고해야 하니까..)


화면 전체를 차지하지 않는 건 action sheet인데 여기에 다른 컨트롤을 넣을까 하다가 이건 아닌것 같고.

그냥 view controller 만들어서 presentViewController 사용해서 보여주는데 배경을 투명으로 했다.

그런데 투명으로 잘 떠놓고 뜨고나면 뒤가 까매짐.

알아보니 modal로 띄우면 원래 뒤의 view가 hidden이 되어서 그렇단다.

modal presentation style을 UIModalPresentationCurrentContext로 하면 hidden이 안된다는 의견도 있는데 이건 아이패드만 가능하고 아이폰은 안된다.


그래서 해결책은 두가지로 요약.

첫번째 방법은 presentViewController 쓰지말고 뷰를 직접 애니메이션 시켜서 띄우는 것.

두번째는 배경에 이전 화면 캡쳐를 깔아서 투명인양 하는 것. 요걸로 선택.


prepareForSegue에서 화면 캡쳐해서 image view만들어 0번 인덱스로 addSubview. 그전에 hidden=YES로 한다.

viewDidAppear에서 hidden=NO

이러면 위로 슝 올라온 다음 배경이 짠 뜨는 것이다. 물론 같은 배경이니 표시는 안난다.

이거 안하면 화면 캡쳐한 배경 이미지가 아래에서 슝 올라옴.

dismissModalViewController 하기 전에 다시 hidden=YES


화면 위쪽 반에는 반투명 UIView가 있고 아래는 불투명 뷰 위에 컨트롤들 배치.

반투명 뷰에 UITapGestureRecognizer 붙여서 터치하면 사라지는 걸로.




그나저나 이렇게 머리굴리지말고 걍 편하게 제공해주는 것만 쓰면 좋겠다.

창은 모두 화면 꽉 차는 걸로! 다이얼로그랑 액션시트만 빼고!

근데 내가 막 삽질하고 나면 다음번에 기능 추가해주더라..