IOS/프로젝트

[iOS 향유] 카테고리 상단 탭 구현과정

hsooooo 2022. 2. 3. 23:36

기능 구현

✅ 라이브러리 설치 및 삭제 방법

https://zeddios.tistory.com/25

 

왕 초보를 위한 CocoaPods(코코아팟) 사용법 (Xcode와 연동)

안녕하세요! 오늘은 CocoaPod사용법에 대해 알려드릴려고해요 :) 저는 CocoaPod 처음에 시작할 때 뭐가 뭔지 몰라서 정말 하나도 몰라서 진짜 어려운거구나...라고 생각했었어요. 하지만 한번 배워 놓

zeddios.tistory.com

 

✅ 상단 탭바 'Tabman' 라이브러리 활용

https://developer-p.tistory.com/161

 

iOS | 탭맨(TabMan) | 탭맨 라이브러리 예제 및 커스텀 방법. (Examples and customization of the Tabman library.)

ZigZag 클론 코딩을 하면서 상단 탭바 구현이 필요했습니다. 상단 탭바는 직접 구현할 수도 있고, 혹은 다양한 라이브러리를 활용해 구현할 수 있습니다. 아래 영상은 상단 탭바 - 탭맨 라이브러

developer-p.tistory.com

https://gonslab.tistory.com/17

 

iOS Swift 라이브러리 Tabman 사용하기

안녕하세요 Gons 입니다. 오늘은 안드로이드의 ViewPager 같은 라이브러리 Tabman 을 사용해보겠습니다. 기본탭바는 커스텀하기 힘들고 스크롤로 전환되지 않기 때문에 Tabman 을 사용해보겠습니다. 가

gonslab.tistory.com

https://swiftpackageregistry.com/uias/Tabman

 

Tabman - Swift Package Registry

 

swiftpackageregistry.com

 

✅ 라이브러리 사용 중, 'Force Cast Violation: Force casts should be avoided. (force_cast)' 오류 발생
아래 두개의 해결방법 중(경고 무시, 강제 캐스팅), 위의 방법인 경고 무시 방법을 사용하였다.(시간 촉박..)
만약, 코드 리팩터링 시간을 가진다면 아래 방법처럼 코드 수정할 것!!!

https://github.com/realm/SwiftLint/issues/145

 

How to ignore some instances of the force cast rule · Issue #145 · realm/SwiftLint

I have some cases where I want to use a force cast - e.g. when it would be a programming error if the force failed. One example is loading a view controller from a storyboard. Is there any way to i...

github.com

https://pilvi.tistory.com/m/3

 

SwiftLint를 적용하면서 수정한 것들🙀

🐥입사 전에는 프로젝트를 할 때, 항상 SwiftLint를 적용하며 개발했었다. 입사 후, 회사 프로젝트에서는 린트가 적용되어 있지 않았고, 그 필요성을 느껴 린트 적용을 제안했다. 작성되어 있던 코

pilvi.tistory.com

 

✅ 상단탭바 개발과정 중 겪은 오류

처음에 두번째 방법으로 코드작성을 하고 있었는데 "dispatchqueue.executeinmainthread thread 1: exc_bad_access (code=2, address=0x7ffee7ac4ff8)" 에러가 발생했다. 이 때는 collectionview를 먼저 만들고 탭바를 추가했기 때문에 안되는 것 같아 새로 스토리보드를 다시 작성했다. (아직 이 오류가 왜 나왔는지 아직 해결 못했다.. collectionview 때문인가..?)

 

그 후, 최신순-인기순-무료-유료로 바뀌면서 아래와 같이 각각 메뉴에 따른 화면 색이 바뀌어야 하는데 색(화면)이 바뀌지 않는 오류가 생겼고 Tabman 라이브러리 구글링을 엄청 했는데 나아지지 않았다. 

코드 작성을 두가지로 나누어서 시도해보았는데

 

BUT! 팀원 언니의 도움을 받아서 배경을 바꾼 것은 스토리보드에서 한 것이기 때문에 코드에서 스토리보드랑 연결하기 위해서는 instantiateviewcontroller가 필요할 것 같다는 의견을 받아서 두번째 방법으로 해결하였다!!

 

해야할 것

하지만 지운 collectionview를 다시 넣어야한다..
했던 거니깐 빨리 할 수 있겠지...?