[UIKit] CustomView
·
🍎 Dev/UIKit
새싹에서 후반기 프로젝트를 개발할 당시 CustomView를 많이 사용하게 되어서 정리하게 되었다.주로 코드베이스로 UI를 그려왔기 때문에 해당 글에선 코드 베이스 + SnapKit 기반으로 customView를 만드는 방법을 다룰 예정이다.        커스텀 뷰를 왜 사용할까❓ 우선 내가 CustomView를 사용했던 가장 큰 이유는 재사용성 때문이었다.위 캡쳐 이미지처럼, 반복되는 UI 요소가 많은 화면을 그릴 때 매번 UI와 관련된 코드를 작성하면 굉장히 비효율적일 수 밖에 없다. 폰트를 바꿔야한다면?포인트 컬러를 바꿔야한다면?버튼의 코너 레디어스를 변경해야한다면? 동일한 구성의 코드를 일일이 찾아서 수정한다면, 반복되는 뷰의 수가 많을 수록 수정의 굴레에 빠질 수 밖에 없으니까. 또한, 부분적으..
[Issue/UIKit] fullScreen vs OverFullScreen
·
🍎 Dev/Issue
🙁 문제상황 : 과제 프로젝트를 하는 도중, 다른 뷰컨트롤러를 화면에 꽉 찬 팝업창으로 불러오며 팝업창으로 만든 UIView 외의 영역엔 팝업창 VC를 불러오기 전 화면을 어둡게 보이고 싶었다. 나한테 화면에 꽉 찬 VC 전환은 당연히 fullScreen 이라고 외워두고 있었기 때문에 정작 적용했을 때 원하는 바가 이뤄지지 않았는데 ... ✏️ 해결한 방법: 사실 내가 간과한 것이 modal present style이 다양하다는 것과 내가 주로 fullScreen 옵션만 사용해서 다른 옵션의 존재를 까마득하게 잊고 있었다는 것. 그러니 옵션에 대해서 한정적으로 기억하지 말자는 의미로 기록해두기로 했다. (습관적으로 암기하려고 드는 걸 경계해야할 것 같다. 개발을 배우며 깨닫는 건 개발은 사고의 분야지 ..
[UIKit/Storyboard] 키보드 내리기
·
🍎 Dev/UIKit
💻 텍스트필드를 단순히 넣기만 하면 키보드가 내려가지 않는 걸 시뮬레이터로 확인할 수가 있다. 화면을 터치해서 키보드를  내리거나, return key를 눌러 내리기 위해서는 코드로 작성해주어야 한다. 그래서 키보드를 내리기 위한 몇 가지 방법을 정리하고자 한다.        사용자는 보통 키보드를 내릴 때, 빈 화면을 터치하거나 혹은 return key를 눌러 키보드를 화면 아래로 내린다. 이런 action을 구현해주려면 어떻게 해야할까?      (1) IBAction으로 연결할 때 Event를 Did End On Exit로 변경해준다.   Action으로 뷰객체를 연결해줄 때, Event를 Did End On Exit로 변경해주면 시뮬레이터에서 return key를 누르면 키보드가 바로 내려가는 ..
[UIKit/Storyboard] Shadow vs ClipsToBound
·
🍎 Dev/UIKit
💻 프로젝트 목표: 사용자가 DatePicker에서 선택한 날짜를 기준으로 +100일, +200일, +300일, +400일이 합산 된 날짜가 이미지 위에 뜨도록 만들기. ✏️ 이해가 필요한 개념: IBOutlet, IBAction, Sub ImageView, Shadow 와 ClipsToBound 💭 어려웠던 부분: 설정한 그림자가 시뮬레이터에 나오지 않음, (첫) 매개변수 응용, 함수식 정리         📌 이미지뷰 뒤로 그림자 만들기 (1) UIView -> UIImage -> label : 각 속성을 살리는 레이어 쌓기   - UIView를 시작으로 차곡차곡 레이어를 쌓아주어야 한다.UIImageView만 쓰면 layer.cornerRadius 설정할 때 shadow 설정한 부분이 함께 잘려..
[UIKit/Storyboard] Entry Point
·
🍎 Dev/UIKit
📌 엔트리 포인트 (Entry Point) 란? 진입점이란 뜻으로 프로그램이 시작하는 시점이다. 또한, 스토리보드 (Story board)에서 프로그램 실행 시 메인으로 보여지는 화면이기도 하다.    📌 Entry Point 설정하는 방법   View Controller를 추가하면 보통 entry point는 설정되어 있지 않다.  View Controller 추가하는 방법은 아래와 같다.  (1) Entry Point로 설정하고 싶은 View Contoller를 선택해준다. 위 예시 이미지처럼 파란색으로 선택이 잘 되었는지 확인 필수. 제대로 선택되지 않을 경우 인스펙터 영역에서 아무 것도 뜨지 않는다.     (2) Attributes inspector (다섯번째 영역)에서 ⏹️ Is Initi..