티스토리 뷰

반응형

 

 

 

안녕하세요! ^-^ 민군입니다. 휴... 현재 부스트코스 iOS개발자과정 프로젝트 5번째를 하고 있는데요. 간간히 꿀팁이 새록새록 나오더라구요!  이건 유용한 정보로 남겨놔야겠다 싶어 포스팅을 합니다!

 

이 프로젝트까지 총 5개의 프로젝트를 리뷰를 받아 통과하면 부스트코스를 수료할 수 있는데요. 네이버에서 운영하는 비영리기관, 커넥트재단에서 주관하는 코스인만큼 공신력이 있을것 같아 열심히 공부중에 있습니다! ^-^

고수가 되는길, 험난하기만 하지만 이게 인생 아니겠습니까? ㅎㅎ 

 

자, 이제 본론으로 들어갑니다. 컬렉션뷰를 사용할때 생길 수 있는 난감한 문제의 예시 보여드리겠습니다.

 

 

 

 

 

 

위 모습은 현재 제가 수행중인 5번째 프로젝트, "BoxOffice" 앱인데요. 지금은 화면회전을 안한상태라 크게 문제가 없어 보입니다. 그런데 화면회전을 한번 해보겠습니다! 

 

 

 

 

 

 

이런 쉣더뻑, 행의 셀이 2개가 유지되고 싶은데 3개가 되어버렸습니다! 이럴경우 어떻게 해야할까! 제가 선택한 방법은 

"화면회전이 될때를 감지하여 그때 셀의 크기를 즉각 갱신해주는 것" 이었습니다. 한번 구현방법에 대한 간략한 틀 살펴보겠습니다!

 

 

 

 

 

 

즉, 화면회전이 될예정일때를 감지하여 호출하게 되는 델리게이트메서드, viewWillTransition입니다. 이 메서드 내에서 collectionViewFlowLayout 셀 크기를 재조절해주는 것입니다. 그렇게 되면 화면 회전을 한 뒤에도 원래 제가 생각했던 대로 유지된 채로 볼수가 있는 것입니다.

 

현재 사용중인 movieCollectionView의 레이아웃값을 받아와서 설정을 해주는 부분입니다. 

 

 

 

 

최종적으로 제가 사용중인 collectionView의 셀 사이즈를 기호에 맞게 조절하여 itemSize프로퍼티에 넣어준 뒤, 해당 레이아웃 인스턴스의 invalidateLayout메서드를 호출해주시면 해당문제가 해결됩니다!

 

 

문제 해결되었음.

제가 원하는 결과가 정상적으로 나왔네요. 추가로 만약 화면이 회전되었는지 유무를 세부적으로 확인하고자 하신다면, 

if UIDevice.current.orientation.isLandscape == true {

}

를 활용하시면 됩니다. 말그대로, 현재 스마트폰 화면이 가로상태인지를 확인해주는 조건문입니다.

UIDevice(기기의).current(현재).orientation(방향이).isLandscape(가로모드냐?) == true or false 정도로 기억해두시면 되겠네요.

 

현재 제 부스트코스 앱개발 현황도 공유할겸 동영상 시연을 하며 이만 물러가겠습니다! @_@;; 질문이나 의견 있으시면 언제든 환영합니다!!

 

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함