-
StoryBoard
- CollectionView 사용
- Page Comtrol 사용
- Collection View - ScrollView 사용
-
ViewController
- CollectionView : DataSource, Delegate 사용(self로 extension 사용)
- flowlayout : size automatic 풀어주기
- extension DataSource : 데이터 셋팅(casting 사용)
- extension DelegateFlowLayout
- sizeForItemAt를 이용해 CGSize 설정(한 Cell당 하나라서 그냥 collectionView.bounds.size 적용)
- 셀 사이 간격 조절
- minimumInteritemSpacingForSectionAt : 셀 사이 최소 간격 반환
- minimumLineSpacingForSectionAt : 행 사이 최소 간격 반환
- UIScrollViewDelegate : scrollView의 현재 페이지 index 설정
-
CollectionViewCell(Result, Home)
- prepareForReuse : 시작시 셋팅
- configure : Cell 데이터 셋팅
-
UI 만들기
- Search Collection View
- ResultCell
- ContentView
- thumbnailImgView - 동물 사진
- ContentView
- ResultCell
- Home Collection View
- HomeCell
- ContentView
- pawprint - 발바닥 사진
- NameLabel - 이름
- thumbnailImgView - 동물 사진
- ContentView
- HomeCell
- TabBar Controller
- Navigation Controller
- Search Collection View
-
CollectionView 연결
- DataSource
- Delegate
- FlowLayout
-
CollectionView 데이터 업로드
- UIComponent 연결
- UIComponent 데이터 업로드 코드 작성
-
TabBar 만들기
- TabBar 생성
- 각 Scene 연결
-
짜잘한 UI 코드 수정
- 네비게이션바 만들기
- Search부분 만들기
- superView
- aspect fill
-
Collection View 만들기
-
Collection View안에 Cell 만들기(복사될)
-
Label 및 여러가지 필요한 UI 넣기
-
각 UI에 맞는 AutoLayout 설정
- ctrl으로 상위의 UI에 연결해서 위 맞추기 등
-
TabBar 만들기
- ViewController 클릭
- Editor -> Embed In -> TabBar Controller 클릭
- Scene 더 만들기
- TabBar에서 ctrl 누르고 마우스로 땡기기
- Relationship Seque -> view controllers 눌러서 연동하기
- 각 Scene에서 TabBar 수정해서 보여질 이미지나 텍스트 수정하기
-
Navigation 만들기
- ViewController 클릭
- Editor -> Embed In -> Navigation Controller 클릭
- 코드나 StoryBoard로 보여질 텍스트 수정하기
위 사진과 같이 클릭시 TabBar Controller가 StoryBoard에 생김
'+' 를 눌러서 Scene 만들기(TabBar로 옮겨갈 View)
- ctrl을 누르고 Scene에 옮기기
- Relationship Seque -> view controllers를 눌러서 연동하기
연동시 아래 사진과 같이 연동되어 있는 부분을 확인할 수 있음
각 View Controller에 가서 TabBar Item 수정해서 TabBar에 보여질 이미지나 텍스트 만들기
이번 프로젝트는 따로 Text없이 아이콘으로만 해서 image에 house만 들어감
저번 프로젝트인 AppleFramework에서 처럼 StoryBoard에 Navigation 만들고 title 설정
self.navigationItem.title = "Search"
검색창을 위한 Search Controller 만들기
// 파일 : SearchViewController에 viewDidLoad 부분
let seachController = UISearchController(searchResultsController: nil)
// 검색컨트롤러는 검색하는 동안 네비게이션바에 가려지지않도록한다
seachController.hidesNavigationBarDuringPresentation = false
// 검색 전에 무슨 내용으로 채워져 있는지
seachController.searchBar.placeholder = "Saech"
// extension으로 결과 업데이트시 동작 함수
seachController.searchResultsUpdater = self
// 네비게이션 아이템에 searchController 추가하기
self.navigationItem.searchController = seachController
검색창에 text 변경시 print해주는 코드
// 파일 : SearchViewController에 extension
extension SearchViewController: UISearchResultsUpdating{
func updateSearchResults(for searchController: UISearchController) {
let search = searchController.searchBar.text
print("search: \(search)")
}
}
다크모드일때는 white가 나와야해서 상관 없지만
다크모드가 아닐때는 white가 아닌 black이 나와야함.
white color -> white로 고정되게 설정
Label color -> 각 다크모드 등 상황에 맞게 색 변경
- 아래 사진과 같이 img를 본인에게 끌고와 Aspect Radio 클릭
- 비율 설정해주기 아래 사진과 같이 가로(4) : 세로(3) 비율로 설정해주기
비율을 유지하면서 뷰의 사이즈에 맞게 이미지를 늘리는 옵션 남는 부분은 투명 처리
비율을 유지하면서 뷰의 이미지를 꽉 채우는 옵션 어떤 부분은 잘려 보일 수 있음(아래 사진과 같이 앵무새 머리가 짤릴 수도)
전체 이미지가 다 나올 수 있도록 필요하다면 비율을 깨트리면서 뷰의 사이즈에 맞게 이미지를 꽉 채우는 옵션(아래 사진과 이미지 비율이 이상해짐)
Aspect fit -> Aspect Fill -> Scale To Fill ->
- TabBar를 통한 ViewController 이동
- Aspect Ratio를 통한 이미지 비율 설정
- 이미지 Content Mode 설정(Aspect Fill, Fit, Scale To Fill 등)
- Label Color
- Search 부분 구현하기
StoryBoard
SearchViewController
HomeViewController
ResultCell
HomeCell