Today I Learned
UIViewController의 개념 UIKit 앱의 뷰 계층을 관리하는 개체한 개의 페이지는 반드시 한 개의 UIViewController를 가짐UIViewController 내부에 UIView, UIButton, UIScrollView 등 UiKit의 UI 클래스들을 배치하며 화면을 구성함ViewController 생명주기Ios의 대표적인 생명주기 2가지앱 생명주기 (App Lifecycle)ViewController 생명주기 (ViewController Lifecycle)ViewController Lifecycle init : 앱에서 어떤 화면으로 진입할 때, ViewController은 이니셜라이저를 작동시켜 인스턴스를 생성한다. (생성자)loadView : loadView는 ViewControl..
오늘은 우리 팀에서 각자 Git에 대해 공부한 것을 회고하는 시간을 가졌다. https://leedoseo.tistory.com/140 Git 기초Git은 효과적인 코드 관리 및 협업의 필요성이 중요한 개발 세계에서 중요한 부분이다.1인 개발 혹은 팀 규모의 개발이든 관계없이 Git과 같은 버전 제어 시스템(소프트웨어 팀이 시간의 경과에leedoseo.tistory.com https://leedoseo.tistory.com/141 Git 이란?Git은 소스 코드를 관리하기 위한 분산 버전 제어 시스템이다. 버전 제어 시스템은 사용자가 파일을 수정할 때 변경 사항을 기록하고 저장하므로 언제든지 이전 버전의 작업을 복원할 수 있다. leedoseo.tistory.com https://leedoseo.tist..
오늘은 카테고리를 커스텀하려고한다. 카테고리는 세그먼트를 사용하여 구현을 했는데 위 사진처럼 카테고리가 회색 배경이 있고 박스안에 갇힌거로 나와있다.그래서 우선 배경을 지우기 위해 아래의 코드를 사용했다.control.setBackgroundImage(UIImage(), for: .normal, barMetrics: .default)control.setDividerImage(UIImage(), forLeftSegmentState: .normal, rightSegmentState: .normal, barMetrics: .default)위 코드를 세그먼트 커스텀에 추가하여 배경을 하얗게 하고 줄로 나뉘는걸 없애주어서 투명하게 만들었다.추가로 사용자가 선택한 카테고리로 넘어갈 때 밑줄을 추가하여 사용자가 어느..
// Model.swiftimport Foundationstruct CoffeeList{ let imageName: String let menuName: String let menuPrice: Int}extension CoffeeList{ static let recommended_Menu = [ CoffeeList(imageName: "plain_PongCrush", menuName: "플레인퐁크러쉬", menuPrice: 4500), CoffeeList(imageName: "iced_Cue_Brat", menuName: "아이스큐브라떼", menuPrice: 5200), CoffeeList(imageName: "grapefruit_Ade", menuName: "자몽..
오늘은 클로저를 복습해봤다. 강의 자료에도 나와 있듯이 클로저는 이름없는 함수 즉, 코드 블록을 말한다. [ 함수를 만들어 변수에 할당하고, 해당 변수를 사용하여 해당 함수를 호출하고, 해당 함수를 다른 함수에 매개 변수로 전달할 수도 있다. ] 이러한 방식으로 사용되는 함수를 클로저라고 하며 함수처럼 작동하지만 약간은 다르게 작성된다. 또한 클로저는 상수나 변수의 참조를 캡쳐해 저장할 수 있다.Swift의 클로저는 주변 환경에 있는 변수나 상수를 캡쳐해 저장하고, 이를 나중에 사용할 수 있도록 한다. 이것은 클로저가 생성될 때 클로저가 참조하는 변수 또는 상수의 값에 대한 복사본을 유지하고 저장하는 매커니즘이다.값(value) 캡쳐 : 클로저가 변수나 상수의 값을 캡처한다. 이 때, 클로저 내부에서 캡..
import UIKitclass ViewController: UIViewController { var display = UILabel() // 결과를 표시할 라벨 var verticalStackView = UIStackView() // 버튼을 배치할 수직 스택뷰 // 버튼에 표시할 숫자 및 연산자 배열 let buttons = [["7", "8", "9", "+"], ["4", "5", "6", "-"], ["1", "2", "3", "x"], ["AC", "0", "=", "÷"]] // 뷰가 로드될 때 호출되는 메서드 override func viewDidLoad() { super.viewDidLoad() view.back..
코드베이스UI로하는걸 잘못해서 다른방법으로 하고 있어서 다시 시작한다. 1. 우선, main스토리보드를 Move to Trash로 삭제한다. 2. Info에 가서 Storyboard Name 을 지운다 3. 프로젝트 파일에서 Building Setting 에가서 UIKit Main Stroyboard FileBase Name을 삭제한다 4. 앱에게 맨 처음 시작할 뷰를 알려줘야 하므로 SceneDelegate.swift 파일에 다음과 같은 코드 작성를 작성한다// SceneDelegate.swiftclass SceneDelegate: UIResponder, UIWindowSceneDelegate { // 윈도우. 앱에 반드시 한 개는 필요한 가장 근본이 되는 뷰. 이 위에 뷰가 쌓이기 시작. v..