Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

iOS 개발일지

0821 새싹 7주차 마무리 본문

SeSAC iOS 데뷔과정 2기

0821 새싹 7주차 마무리

Lia's iOS 2022. 8. 21. 14:32
iOS 앱 개발자 데뷔 과정 7주차 마무리

 

 

 

 

#2. Assignment

- Netflix Code Base로 연습하기

- BaseViewController, BaseView, CostomView 등을 활용해서 코드 베이스로 UI 구성

 

참고 자료(좌), 결과물(우)

 

참고 자료(좌), 결과물(우)

 

 

 

- Code Base tapGestureRecognizer 구현

BaseViewController에서 구현하고 호출하면 상속받은 클래스들은 별도의 작업 없이 제스쳐를 사용할 수 있다.

여기서 tapGestureRecognizer.cancelsTouchesInView = false 가 중요하다!!

기본값은 true인데, false로 바꿔주지 않을 경우 didSelectItemAt과 같은 터치가 작동하지 않는다.

 

 

 

- 재생버튼을 누를 경우, 얼럿을 통해 LoginViewController로 화면 전환

BaseViewController

 

BaseViewController를 상속받은 LoginViewController에서 addTarget을 활용

 

 

 

 

- Diary App

- UnsplashAPI 등을 활용해 이미지를 검색하고, 선택한 이미지가 이전 뷰컨트롤러에 반영되도록 앱 구성

결과물

 

- Code Base CollectionView 구현

ImageSearchView

 

ImageCollectionViewCell

 

ImageSearchViewController

 

 

 

- isSelected : 선택한 셀 보여주기

컬렉션뷰에서 셀을 선택했을 때, 선택된 셀을 사용자에게 알려주기 위해 isSelected를 오버라이드해 활용할 수 있다.

ImageCollectionViewCell

 

 

- 선택한 셀의 정보 역방향 전달

 

1. didSelectItemAt 에서 선택한 셀의 정보 저장하기

ImageSearchViewController

 

2. 정보를 전달할 비어있는 클로저 만들기

ImageSearchViewController

 

3. 실질적인 동작을 할 클로저 작성

WriteViewController

 

 

 

 

# 그 외

- setTitleColor

UIButton의 titleColor가 바뀌지 않아서, setTitleColor를 사용하니 정상적으로 변경되었다.

 

 

- That's illegal (그건 불법입니다)

코드로 레이아웃을 구성하다 보면 가끔 아래의 오류를 만나게 된다.

 

Thread 1: "Unable to activate constraint with anchors <NSLayoutYAxisAnchor:0x600001f43b80 \"UIButton:0x1507106c0.bottom\"> and <NSLayoutYAxisAnchor:0x600001f42ec0 \"UIImageView:0x1528064f0.bottomMargin\"> because they have no common ancestor.  Does the constraint or its anchors reference items in different view hierarchies?  That's illegal."

 

addSubview의 위치가 서로 다른 객체들끼리 관계를 가지려고 하거나, 까먹고 addSubview에 추가하지 않았을 때 발생한다.

참고로 배열로 addSubview를 한번에 추가할 때, 서로 다른 배열에 뷰가 있다면 다른 계층으로 인식한다.

뷰 계층 좀 헷갈릴 수도 있지 사람을 범법자로 만들다니...

 

 

 

- UIButton.contentMode / SystemImage 사이즈 변경

UIButton의 SystemImage를 버튼의 크기만큼 채우고 싶다면, 아래의 세 줄의 코드를 활용하면 간단하다.