본문 바로가기

Swift/UIKit

(5)
높이 조절 가능한 CustomModal(Half Modal) Swift에는 present할 때 화면 전체가 아니라 반만 차지하게 하도록 하는 기능이 있다 (swift half modal이라고 치면 한글 블로그도 디게 많으니 궁금하면 검색 ㄱㄱ) 그런데 이게 15부터만 사용이 가능하다 근데 우리 회사는 최소 타겟이 15라서 그냥 바로 사용하려 했는데 이게 왠걸... 진짜 진짜 half, 화면의 반 아니면 완전크게 이런식으로만 사용 가능한게 15부터고 크기를 커스텀 하려면 16부터 라는 것이다...ㄷㄷ 그래서 그냥 만들었다 @objc private func touchButton() { let customModal = CustomHalfModal() customModal.contentsView = TestView() self.present(customModal, ani..
Tableview pagination 리스트를 구현하다보면 아래 영상과 같이 페이지네이션을 해야할 때 가 많다(거의 다 라고 해야하나..;;) 아무튼 앱 개발 공부를 처음 할 때(부트캠프 할 때)는 새로운 배열이 들어올 때 마다 tableView(혹은 CollectionView)를 리로드 해버렸는데 이렇게 하면 이미지뷰에 이미지 할당 할 때 겁나 깜빡깜빡 거려서 메모리고 뭐고를 떠나서 꼴 보기가 싫었다... 그래서 페이지네이션 할 때는 추가되는 index에 해당하는 cell indexpath 만 append 해주고 해당 cell만 리로드 해주는 방식으로 구현하며 그 내용을 정리하려고 한다 ViewModel에서의 코드 private var listPageNumber = 0 private var listPageSize = 10 //MARK: -..
높이가 다른 이미지 다운로드 후 Cell에 할당 struct SectionInfoEntity { let imageUrl: String? var cellHeight: Double } Entity가 cellHeight변수를 가지고 있음 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return self.sections[safe: indexPath.row]?.cellHeight ?? 0.0 } entity에 저장된 height로 cell 높이 지정 private func imageSectionCell(tableView: UITableView, indexPath: IndexPath, sectionInfo: DisplayEventDetailEnt..
스크롤 중 타이머로 인한 뷰 업데이트가 멈추는 현상 타이머를 통해 1초마다 label을 업데이트 하는 기능을 구현했다 해당 label은 CollectionView의 Cell 안에(정확히는 Section header) 배치된 label이었는데... 스크롤 도중 뷰 업데이트가 멈추고 스크롤에서 손을 떼면 지난 시간 만큼 한 번에 업데이트가 되어버리는 현상이었다 이 문제를 구글링 해보니 '스크롤을 하는 동작이 메인스레드를 막아 다른 뷰 업데이트가 되지 않는것이 정상적' 이란다... 그런데 왜 다른 어플들은 되는데?? 그래서 더 찾아봤더니... main runloop에 추가 하면 된단다 사실 뷰 업데이트를 위해 메인스레드에서 실행 시켜본 적은 있었으나 런루프에 추가시킨다는 생각은 해본적이 없던 멍충한 나... 그래서 런루프가 뭐지...? 그건 이 소들 선생님 블..
Compositional Layout으로 여러가지 모양(?) 적용기 난 Compositional Layout을 다룰줄 몰랐다 정확히는 Compositional Layout으로 collectionView를 만들었지만 한 collection view 안에 여러 섹션으로 모양을 다양하게 다룰줄 몰랐다. 그런데 이번에 디자인 기획안이 너무나도 Compositional Layout으로 구현하기 좋게 나왔고 안드로이드 개발자분한테 swift에는 이런 방식이 있다 말씀드리니 자기도 그런 비슷한 걸 시도해볼까 한다고 하셔서 같이 도전하기로 했다(물론 각자지만 마음만은 ㅋ) 맨 하단에 전체 코드를 첨부할거지만 사실 뭘... 딱히 이해하기에 크게 어렵진 않았던 것 같다 왜냐면 단일 collectionView 선언에서 section만 여러개 만드는 느낌? 인 것 같아서 그럴수도.. (그냥 ..