20220216 iOS 일일 개발일지 === ###### tags: `develop`, `20220216` [toc] ### 모달 구현 내가 구현하고자 하는 어플에는 참 많은 모달이 있음. 하지만 모달에 대해서 각각 구현하는 것은 재사용성을 낮추고, 비효율적일 것 같다는생각이 들었다. 이 부분에 대해서 어떻게 해결할지 고민 중 enum의 연관값을 사용하는 것은 어떨까 하는 생각이 들었음. sort vc와 sizeselect vc를 제거하고, 이를 select vc로 바꿔서 하나의 vc가 모든 모달에 대해서 대응할 수 있도록 코드를 작성해야겠음. ```swift= enum SelectionType { case wish(size: String = "") case size(size: String = "") case sizePrice(size: String = "", price: Int? = nil) case sort(sequence: String = "") case deadline(date: Int = 0) var navigationTitle: String { switch self { case .wish: return "관심 상품 추가" case .size: return "사이즈 선택" case .sizePrice: return "사이즈" case .sort: return "정렬 순서" case .deadline: return "입찰 마감기한" } } } ``` SelectionType에 따라 모달의 높이 또한 다르게 하기 위해서 Layout enum을 구현하고, 타입에 따라 collectionView의 레이아웃을 결정하기로 했음. ```swift= if case .sort = type { return Layout.list.description } if case .wish = type { return Layout.third.description } if case .deadline = type { return Layout.third.description } ``` ![](https://i.imgur.com/WvigRp4.jpg) ### 티타임 나는 잘 가고 있는게 맞을까? 지금 당장 구현에 급급하지만, 발표가 더 중요한 것 같다는 느낌도 들고. 하지만 팀 프로젝트다. 내 구현물도 구현물이지만, 팀원들의 구현물이 제대로 보여질 수 있도록 하자.