본문 바로가기

전체 글

(22)
높이 조절 가능한 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에 추가 하면 된단다 사실 뷰 업데이트를 위해 메인스레드에서 실행 시켜본 적은 있었으나 런루프에 추가시킨다는 생각은 해본적이 없던 멍충한 나... 그래서 런루프가 뭐지...? 그건 이 소들 선생님 블..
xcode 여러개 사용하는 방법(xcodes) Xcodes - Manage multiple versions of Xcode Download Xcode easily with a mouse click or a Command Line Interface www.xcodes.app xcodes라는 프로그램을 이용하면 한 컴퓨터에 xcode 두 버전을 설치해 이용할 수 있다 "굳이 왜 그러시죠?" 라고 물으신다면 나는 xcode 15.0.1버전을 쓰고 있는데 github action 같은 경우는 14.2버전으로 빌드된다 허나 15.0.1에서는 에러가 아닌데 14.2에서는 에러인 경우가 있어 더블 체크를 위함도 있고 최신 버전의 xocde에서 오류가 나는게 이전버전에서 말짱 하기도 하고 여튼 그런 경우에 쓴다 ㅋ
Compositional Layout으로 여러가지 모양(?) 적용기 난 Compositional Layout을 다룰줄 몰랐다 정확히는 Compositional Layout으로 collectionView를 만들었지만 한 collection view 안에 여러 섹션으로 모양을 다양하게 다룰줄 몰랐다. 그런데 이번에 디자인 기획안이 너무나도 Compositional Layout으로 구현하기 좋게 나왔고 안드로이드 개발자분한테 swift에는 이런 방식이 있다 말씀드리니 자기도 그런 비슷한 걸 시도해볼까 한다고 하셔서 같이 도전하기로 했다(물론 각자지만 마음만은 ㅋ) 맨 하단에 전체 코드를 첨부할거지만 사실 뭘... 딱히 이해하기에 크게 어렵진 않았던 것 같다 왜냐면 단일 collectionView 선언에서 section만 여러개 만드는 느낌? 인 것 같아서 그럴수도.. (그냥 ..
mac Sonoma에서 xcode 14버전 대 실행시키는 법 xcode 여러개 사용하는 방법(xcodes)Xcodes - Manage multiple versions of Xcode Download Xcode easily with a mouse click or a Command Line Interface www.xcodes.app xcodes라는 프로그램을 이용하면 한 컴퓨터에 xcode 두 버전을 설치해 이용할 수 있다 "굳이 왜 그러dev-doogie.tistory.com위 글을 확인하면 한 맥북에서도 xcode 여러 버전을 돌릴 수 있다 하지만...!mac os가 Sonoma로 넘어오면서 14버전 대 xcode 실행이 안된다사실 14버전 다 안되는건지는 몰?루 암튼 14.2는 실행 못시킨다그렇다고 mac os를 다운그레이드 시키기에는 나에게 남은 시간은 너무..
Github Action을 이용한 CI-CD (트러블 슈팅들...까지) 테스트앱을 배포할 때 매번 아카이브 하고 올리고 내용을 슬랙에 공유하고 하는게 귀찮아서 dev branch에 mergey가 되면 testflight에 올라가고 자동으로 슬랙에 공유되는 형식을 구현하고자 CI-CD를 구현하고자 했다 그 중 Github action을 사용하기로 결정한 이유는... 솔직히 "제일 간편하게 세팅 할 수 있어서" 이다 포스팅 읽기 전 주의 사항...1. 일단 가장 하단에 최종 workflows를 작성해두긴 할건데 중간에 작성한 workflows코드는 최대한 최종본으로 반영하려고 했으나 포스팅을 하면서 계속해서 수정된 코드이기에 최종본하고 다른 부분이 있을 수 있음 2. 하단에 트러블 슈팅 있는데 장담컨데 모든 블로그에서 다룬 트러블 슈팅보다 많을듯... ㄷㄷ(본인이 멍청하다 이말..