Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

UIKit30

1. Auto Layout - Interface Builder 톺아보기 Interface Builder 살펴보자! 아래쪽에 보면 버튼 다섯 개를 확인할 수 있을 것이다. 귀여운 어피치가 있는 첫 번째 버튼부터 보자 1. Update Frames - 제약이 잡혀 있는 컴포넌트를 옮겼을 때, 누르면 원래 제약의 위치로 돌아감 2. Add New Alignment Constraints - 정렬 제약을 추가 - 주로 x축의 가운데에 정렬하는 Horizontally in Container - 주로 y축의 가운데에 정렬하는 Vertically in Container - 그 외 다양한 정렬 기능이 있고, 여러 컴포넌트를 선택하고 함께 정렬할 수도 있음 (아래 예시와 같이) 3. Add New Constraints - attribute에 해당하는 제약을 추가 가능 (핀) ___어디서 얼마.. 2023. 3. 22.
0. Auto Layout 집중 공략 오토레이아웃을 완전 처음 접했을 때는 온갖 빨간 줄에 시달렸었다. 스토리보드를 통해 오토레이아웃을 잡기도 하고 코드로도 잡아보며 어느정도 사용해 보고 나니 간단한 에러는 해결할 수 있었다. 하지만 지금까지는 너무나도 간단한 레이아웃들이었다고 생각한다. 따라서 아주 복잡한 화면구성이 필요한 순간에도 오토레이아웃을 잘 잡을수 있는 능력을 습득하고자 따로 공부를 더 하기로 한다. (화려한 애니메이션에도 욕심이 많다..) 오토레이아웃에서 '제약'은 필수이다. (top, leading, trailing, bottom에 제약을 걸어봤을 것이다.) 오토레이아웃의 제약은 수식으로도 표현할 수 있다.(원래 수식으로 되어 있다. 스토리보드로 간단하게 쓸 수 있도록 되어 있을 뿐) 위 그림을 보면 빨간색 뷰의 앞부분(lea.. 2023. 3. 21.
DequeueReusableCell ?? 테이블뷰와 셀 TableView를 활용하면 Cell의 개념은 필수이다. TableView 구현을 위해서는 ViewController에서 확장을 통해 UITableViewdataSource, UITableViewDelegate 두 프로토콜을 채택하는 것이 일반적이다. 우선 셋업단계에서 TableView에 Cell을 identifier를 통해 Register 한 후에 tableView cellForRowAt 메서드에서 셀에 대한 설정들을 해준다. 여기서 셀 인스턴스를 생성할 때, 아래와 같은 메서드를 통하는데 정확히 어떤 메서드인지 궁금해졌다. let cell = tableView.dequeueReusableCell(withIdentifier: "identifier", for: IndexPath) as! MyCell de.. 2023. 2. 28.
Could not insert new outlet connection (.xib) Cocoa Touch Class를 통해 새 파일을 생성할 때 아래와 같이 Also create XIB file 체크박스를 찾을 수 있다. 저걸 체크하고 파일을 생성하면 스토리보드에 컴포넌트를 올렸던 것처럼 그 컴포넌트 하나가 똑 화면에 보이게 된다.( 아래는 UITableViewCell) 모든 컴포넌트를 XIB를 통해 관리하기 보다는, 스토리보드, 코드베이스와 적절히 섞어서 활용하는 경우가 많다고 한다. 예전에는 .nib파일이어서 닙 닙 했다는데.. 이게 xib로 바뀐거 같다. 그래서 뭐가 다른지 알아봤더니.. (출처 : https://zeddios.tistory.com/298) nib은 (NeXT Interface Builder)의 약자라고 해요. xib는(Xml Interface Builder) xi.. 2023. 2. 27.
ViewController.swift 파일명을 마음대로 바꾼다면.. [Storyboard] Unknown class _xxx in Interface Builder file. 스토리보드가 아닌 코드로 앱을 만드는 도중에 이상한 에러를 발견했고, 해결했기에 작성해본다. 아주 간단한 에러인데 어 왜 안되지..? 하고 당황하는 사람이 없기를 바라며.. xcode에서 새로운 앱 프로젝트를 만들면 자동으로 생성되는 파일들이 있다. 거기서 뷰컨트롤러파일은 ViewController.swift로 되어 있고! 그런데 파일 관리를 위해 ViewController.swift 파일 이름을 그냥 바꾸면 아래와 같은 에러가 생긴다.. (위와 같이 그냥 바꾸고 빌드를 하는 경우) [Storyboard] Unknown class _TtC7tabCode14ViewController in Interface Builder file. 마음대로 이름을 바꿔서 뷰와 뷰컨이 연결이 제대로 안되어서 발생하는 에러 같.. 2023. 2. 17.
Delegate Pattern에 대해 알아보자 * Delegate Pattern에 대해 간단하게 이해하기 위한 포스팅 delegate는 위임하다, 맡기다의 의미이다. 누군가에게 일을 대신 시킨다. 즉 대리자가 있다는 뜻! 앱을 만들다 보면 텍스트필드를 자주 활용하게 되고, 뷰컨트롤러에서 관련 코드를 작성한 경험이 있을 것이다. 그런데 텍스트필드도 고유의 객체이고 뷰컨트롤러도 고유의 객체이다. 객체 간 의사소통, 연결을 위해 필요한 것이 바로 Delegate Pattern이라고 이해하면 쉽다. (* 프로토콜을 사용해서 델리게이트 패턴을 구현한다. 프로토콜은 자격증으로 이해하면 좋다. 프로토콜을 채택하면 (즉 자격증을 취득하면) 관련 능력(속성, 메서드)이 생긴다. ) (* 스위프트는 프로토콜 지향 프로그래밍 언어로도 볼 수 있는데, 프로토콜을 활용하면.. 2023. 2. 10.