본문 바로가기

분류 전체보기

(340)
020 ~ 025. Slider, Segment Control, Switch and Stepper Slider Default Slider Slider는 보통 0에서 1 사이의 값을 가지며, 기본 값은 그 중간인 0.5이다. 따라서 씬에 나타나는 Slider의 컨트롤러인 'thumb'는 중간에 위치한다. slider는 thumb을 움직여 값을 조절할 수 있고, 조절할 때마다 slider의 value 속성이 변화한다. value는 왼쪽으로 갈수록 작아지고, 오른쪽으로 갈수록 커지며, 양 끝에 도달하면 더 이상 진행하지 않는다. thumb이 이동할 때마다 valuChanged 이벤트가 전달되고 이는 target-action으로 처리한다. 목표는 각 slider를 통해 RGB값을 변경하고, 해당 RGB값으로 rootView의 backGroundColor를 설정한다. // // SliderViewControl..
014 ~ 019. Button, Picker and Page Control Target Action 007 ~ 013. View & Window (뷰와 윈도우)) 007 ~ 008 강의는 Xcode9 -> Xcode11 마이그레이션 강의로 따로 정리하지 않는다. View & Window Window(윈도우)와 View는 디바이스의 화면과 UI를 출력하고, 이벤트를 처리한다. 모든 앱은 적어도 하나 이상의 chillog.page 이전에 언급했던 UI 중에 Control에 해당하는 Button, Switch, Slider, Page Control, Date Picker, Segmented Control, Stepper의 공통된 기능은 모두 UIControl에 구현되어있다. Control은 각자 다양한 상태를 가지고 있고, 이를 시각적으로 표현하며, 다양한 이벤트를 전달하는데 이 이..
039 ~ 042. Control Transfer Statements, Labeled Statement (흐름 제어 문) Control Transfer Statements fallthrough, throw, return, break, continue가 해당되며, 이전에 설명했던 fallthrough를 제외한 break, continue를 일단 정리하고, throw와 return은 함수에서 다시 정리한다. Transfer Control 제어 전달은 현재 실행중인 scope에서 코드를 중지하고 다음에 실행할 코드를 실행하는 것을 말한다. break Statement switch문과 반복문 두루 사용 가능하다. 현재 실행중인 문장을 중지하고 다음 문장을 진행한다. switch문에서 사용할 경우 let num = 1 switch num { case 1...10: print("begin") if num % 2 != 0 { //num..
037 ~ 038. Loop Statements (반복문) For-In Loops Syntax for loopConstant in Range { statements } for loopConstant in Collection { statements } loopConstant는 바꿀 수 없다. Range만큼 Statements를 반복한다. for index in 1 ... 3 { print("hello") } 결과 hello hello hello index는 선언이후 사용하지 않았기 때문에 warning이 표시된다. 이런 경우 index를 '_'로 대체하여 사용할 수 있는데 이를 wildcard pattern이라고 한다. 변형 for _ in 1 ... 3 { print("hello") } wildcard pattern은 위와 같이 변형해서 사용할 수 있다 let ..
032 ~ 036. Conditional Statements (조건문) if Statement (if 문) Statement if condition { statements } let id = "root" let password = "1234qwer" //id 확인 if id == "root" { print("valid id") } //password 확인 if password == "1234qwer" { print("valid password") } 결과 valid id valid password 두 가지의 조건문을 논리 연산을 통해 하나로 묶을 수도 있다. let id = "root" let password = "1234qwer" if id == "root" && password == "1234qwer" { ("login success") } 결과 login success..
007 ~ 013. View & Window (뷰와 윈도우)) 007 ~ 008 강의는 Xcode9 -> Xcode11 마이그레이션 강의로 따로 정리하지 않는다. View & Window Window(윈도우)와 View는 디바이스의 화면과 UI를 출력하고, 이벤트를 처리한다. 모든 앱은 적어도 하나 이상의 윈도우를 가지고, 외부 디스플레이가 연결되면 두 개의 윈도우를 가진다. Window 터치 이벤트를 올바른 대상에 전달한다. 화면에 표시되는 뷰의 Controller 역할을 수행한다. interface builder를 사용하면 대부분의 과정이 자동으로 진행되지만, 그 외의 방식으로 구성하는 경우 윈도우를 직접 생성하고, 뷰를 직접 추가해야 한다. 새로운 화면으로 전환하는 경우, 윈도우에 추가되어있는 뷰를 다른 뷰로 대체하는 방식으로 진행한다. View 앱에서 시각적..
020 ~ 031. Operator (연산자) + 실습 기본 Syntax A + B A와 B는 Operend (피연산자) +는 Operend (연산자) 구분 +A A + B A + B : C 단항연산자 이항연산자 삼항연산자 조건연산자 //단항연산자는 공백 없이 붙여 쓴다. //⭕️ +A //❌ + A //이항연산자는 공백을 사용해 띄어 쓴다. //⭕️ A + B //❌ A+B //연산자 형식에 따른 명칭 //prefix Operator +A //postfix Operator A+ //infix Operator A + B 기본적으로 곱과 나눗셈을 덧셈과 뺄셈보다 우선 수행한다. Arithmetic Operator (산술 연산자) Addiction (덧셈) Syntax A + B Subtraction (뺄셈) Syntax A - B Multiple (곱셈) Sy..
001 ~ 006. Interface Builder, Outlet and Action, Delegate Pattern Interface Builder interface 구성 방법 xib File Storyboard 이전에 사용하던 방식. 모든 씬들이 각각의 파일로 구성됨. 씬들 사이의 관계에 시각적인 도움이 없으며, 화면 전환까지도 코드로 구현해야 함. 화면의 로딩 속도와 편집 속도가 빠름, 협업에 조금 더 적합. Storyboard 하나의 파일 내에 여러 씬들이 존재. 씬들 사이의 관계가 시각적인 표현으로 조금 더 직관적이지만, 씬이 늘어나면 속도가 느려짐. SwiftUI Code로 구성 xib File 방식과 Storyboard는 interfaceBuilder에서 작성한다. Interface Builder & Xcode Outlet and Action Outlet 코드를 통해 속성에 접근할 때 사용하는 연결 방식이다..
012 ~ 019. literal과 datatype Data Type Builtin Data Type integer (정수), floating-point (실수), boolean (참, 거짓), character (문자), string (문자열) 등의 언어에서 미리 제공하는 데이터 타입. Cutom Data Type 그 외의 사용자가 생성해 사용하는 데이터 타입. Memory 0과 1 (2진수)을 저장할 수 있는 반도체. 단위는 Bit부터 YB까지. Bit 0과 1을 저장. Byte Bit * 8 256개의 데이터를 저장(Unsigned : 0 ~ 255, Signed : -128 ~ 127) Data마다 알맞는 메모리 크기가 있다. 예를 들면 Int 자료형은 8Byte의 메모리를 가짐. 표현 범위는 약 -900경 ~ 900경 까지. 이러한 자료형에 일반..
009 ~ 011. 변수와 상수 생성하기, Scope Variable (변수) var variableName = value 변할 수 있는 수. 변수를 만든다 = 변수를 선언한다. Constant (상수) let constantName = value 변수와는 다르게 선언 이후에 변경 불가. TIP 최초엔 상수로 선언하고 필요에 의해 변수로 변경하는 것이 좋다. CamelCase 이름 짓기 UpperCamelCase lowerCamelCase Class Structure Enumeration Extension Protocol variable constant function property parameter method 항상 단어의 첫 문자가 대문자 맨 처음 단어의 첫 문자가 소문자 Scope (선언 범위) //Global Scope func example() ..