backgroundImage - 탭 바 전체에 적용되는 배경 이미지. 이미지 크기가 작으면 늘려서 채움
selectionIndicatiorImage - 현재 이 탭이 선택되어 있음을 알려주는 이미지 쉽게 말해서 저기 색바뀐거 보이지? 그거 말하는 거임
image - 탭이 선택되지 않았을 때 표시되는 이미지. selectionIndicatiorImage속성에 값이 설정되지 않았으면 image 속성에 등록한거 사용함
titleTextAttribute - 탭 바 아이템의 아이콘 이미지 아래에 표시될 텍스트 속성 폰트 크기나 종류 등을 설정
< 주요 개념 > -- 중요한 개념
clipsToBounds 속성
외형 프록시 객체
앱 델리게이트 클래스 교체 방법
애니메이션 처리 방법
상식 플러스 - 탭바 컨트롤러 연결 시 세그웨이는 관계형 세그웨이 (Relationship Segue)로 연결
실수 플러스 - 세개의 뷰가 존재할 때, 씬 델리게이트에 작성해야지 모두 나타나지 각각의 뷰컨트롤러에 코드를 작성하면, 첫 화면에 로드가 안되는 상황 발생 - 커스터마이징시 주의
< 전문가란? : 발생 가능한 '거의 대부분의' 시행착오를 경험해 본 사람을 말한다>
UIImage(named : 파일이름 )?.stretchableImage(withLeftCapWidth : 숫자, topCapHeight : 숫자)
탭바 아이템에 원본 이미지 적용하는 방법
let image = UIImage(named: "checkmark")?.withRenderingMode(.alwaysOriginal)
이미지 렌더링 타입 세가지
UIImage.RenderingMode.automatic - 이미지에 기본 렌더링 적용
UIImage.RenderingMode.alwatsOriginal - 항상 원본 이미지 형태로 렌더링 . 템플릿에 영향 안받음
UIImage.RenderingMode.alwaysTemplate - 항상 템플릿 이미지 형태로 렌더링 처리하고, 이미지가 가진 본래의 색상 정보는 무시
외형 프록시 객체 사용법
let tbItemProxy = UITabBarItem.appearance()
tbItemProxy.setTitleTextAttributes([.foregroundColor: UIColor.red], for: .selected)
tbItemProxy.setTitleTextAttributes([.foregroundColor: UIColor.red], for: .selected)
tbItemProxy.setTitleTextAttributes([.font : UIFont.systemFont(ofSize: 15)], for: .normal)
자자 보자 코코아 터치 프레임 워크에서 appearance() 메소드 지원해준다.
장점 : for in 구문으로 작성 안해도 쉽게 사용 가능
씬 델리게이트 변경 방법
스토리 보드 파일을 아예 사용하지 않는법
씬 델리게이트 교체방법
1. UIResponder 클래스 상속받기
2. UIWindowScendDelegate 프로토콜 구현
3. UIWindow 타입의 멤버 변수 window가 정의 되어 있어야 한다.
4. info.plist 설정 변경
탭바 애니메이션 부분
애니메이션은 중간과정은 코코아터치 프레임워크가 자동으로 지원해서 자연스럽게 만들어줌
마무리 : 트레일링 클로저랑 클로저 부분에 대한 고민.
코드 작성이 줄어들지만 다른 사람이 알아보지 못해서 협업의 어려움 발생할 것 같음
적정 수준으로 줄이는 것이 결국은 중요할 것 같다.
일단 읽는 것은 무조건 가능할 정도로 학습하기
주석으로 공부하는 편이라 부족할 수 있어서 꼭 참고하길 바람
github.com/DesignYourFuture/ios_study_practice/tree/main/Chapter03-TabBar
'Archive > 꼼꼼한 재은씨 시리즈' 카테고리의 다른 글
알림창 커스터마이징 (0) | 2021.03.19 |
---|---|
네비게이션 바 커스터마이징 (0) | 2021.03.19 |
폰트는 앱 디자인의 눈코입! (0) | 2021.03.12 |
UI 커스터마이징 bounds 속성과 frame속성 비교 (0) | 2021.03.12 |
💜 iOS 개발에 도움이 되는 사이트들 (0) | 2021.03.11 |