📱 Multi-Touch(멀티 터치) 직접 우리가 화면에 터치된 입력을 모두 추적할 수 있긴 하지만 그럴 필요가 없습니다. 대신 iOS가 모든 움직임을 관찰해서 스와이프, 확대/축소, 이동, 탭 등으로 변환한 정보를 사용합니다. iOS가 나타내는 모든 제스처는 UIGestureRecognizer 클래스입니다. 이 클래스는 모든 손가락의 움직임을 제스처로 나타냅니다. 추상적인 클래스이고, 모든 제스처를 인식할 수는 없습니다. 하지만 많은 서브클래스를 이용하면 다양한 제스처를 인식할 수 있습니다. 🏢 UIGestureRecognizer 제스처를 인식하면 크게 두 부분이 있습니다. 뷰에게 확대/축소나 탭을 인식하라고 말합니다(e.g. plz start recognizing pinches/tabs). 인식했을 ..
🎤 Table View and Collection View 🧐 Table View, Collection View 란? UIScrollView의 서브클래스로 무한한 양의(unbounded) 정보에 무한한 접근을 제공하기 위해 사용됩니다. 하지만 자료를 보여주는 방식에서 차이가 발생합니다. Table View: 정보를 하나의 긴 리스트로 보여줍니다(섹션 분리는 가능합니다). Collection View: 다양한 방식이 가능하지만 기본적으로 정보를 2D 포맷으로 보여줍니다(주로 text flow 같은 flowing으로). 여기서 text flow란 글을 읽듯이 왼쪽에서 오른쪽으로, 그리고 다음 줄로 이어서 계속 작성하는 방식을 말합니다. 컬렉션 뷰는 커스터마이징이 가능합니다. 결국 두 View의 차이는 하나는..
🎤 Swift 프로그래밍 언어 - Part 1 🕹 Concentration Game UI 변경 2강까지 완성한 게임의 UI는 괜찮은 것 처럼 보입니다. 하지만 화면을 회전하거나 다른 기기에서 작동시키면 화면이 이상하게 나오는 것을 확인할 수 있습니다. 위의 그림처럼 왼쪽 위를 기준으로 UI가 배치되는 것을 확인할 수 있습니다. 이것을 해결하기 위해서 Stack View를 활용해 보겠습니다. 먼저 묶어주고 싶은 요소들을 블록처리한 후 아래 그림처럼 버튼을 클릭합니다. 이제 4개의 버튼이 하나의 View에 담겼습니다. Spacing을 standard로 해주고 fill equally 옵션을 준 후 아래 두줄에도 같은 작업을 진행합니다. 그 결과로 가로로 3줄의 Stack View가 생겼습니다. 이 Stac..
Control Event(컨트롤 이벤트) 종류 컨트롤이 발생했을 때 그 컨트롤의 종류를 의미하며 UIControl에 Event라는 타입으로 정의되어 있습니다. 컨트롤 객체에 발생할 수 있는 이벤트의 종류 이벤트 종류 설명 표현법 touchDown 컨트롤을 터치했을 때 발생하는 이벤트 UIControl.Event.touchDown touchDownRepeat 컨트롤을 연속 터치(반복) 할 때 발생하는 이벤트 UIControl.Event.touchDownRepeat touchDragInside 컨트롤 범위 내에서 터치한 영역을 드래그 할 때 발생하는 이벤트 UIControl.Event.touchDragInside touchDragOutside 터치 영역이 컨트롤의 바깥쪽에서 드래그 할 때 발생하는 이벤트 U..
🎯 MVC(Model - View - Controller)? 💬 what is MVC? 기본적으로 시스템 안의 모든 객체는 세가지의 카테고리로 나눌 수 있습니다. Model: What your application is about (but not how it is displayed) 앱에서 UI와 독립적인 객체들로 '무엇'에 해당하는 요소들을 가지고 있습니다. 예를 들어, Concentration Game에서는 게임 자체를 할 줄 아는 부분에 해당합니다. 카드가 매치되는지, 카드를 제거해야하는지, 언제 카드를 뒤집어야하는지 같은 부분입니다. (Knowledge of the game) Controller: How your Model is presented to the user (UI Logi..
📱 [스탠포드] iOS 강의 학습하기 (CS193p by Paul Hegarty in Stanford) 스탠포드의 Paul Hegarty 교수님께서 진행하신 CS193p 강의를 통해 iOS에 대한 전반적인 기초를 알아보고자 합니다. 블로그에는 강의 단위로 업로드할 계획입니다. 단순히 강의 내용을 필기하는 블로깅이 아니라 추가적인 자료 조사나 다른 강의 내용에서 습득한 내용을 추가하는 형식의 블로그가 될 예정입니다. 🎯 Lecture.01 Introduction iOS에 대한 전반적인 설명과 사용법에 대한 간단한 설명을 진행합니다. 실습해본 git Repository 📝 Swift 언어의 특징 Swift는 객체 지향 프로그래밍(Object Oriented Prograaming)이 가능하지만 함수 지향 프로..
📱 Auto Layout - Anatomy of a Constraint 🎯 Auto Layout이란? Auto Layout Guide의 정의를 살펴보면 아래와 같습니다. Auto Layout dynamically calculates the size and position of all the views in your view hierarchy, based on constraints placed on those views. 오토 레이아웃은 뷰에 정의된 제약들을 기반으로 뷰 계층에서 모든 뷰들의 크기와 위치를 동적으로 계산해줍니다. 예시는 다음과 같습니다. For example, you can constrain a button so that it is horizontally centered with an Im..
Classes, Structures, Enumerations 📌 유사점(Similarity) 클래스(Class), 구조체(Struct), 열거형(Enum)은 Swift의 기본 자료구조 블럭입니다.(These are the 3 fundamental building blocks of data structures in Swift) 세가지 구조 모두 같은 방식으로 정의됩니다. // 키워드 + 이름 + {} class testClass { } struct testStruct { } enum Op { } 세가지 자료구조 모두 프로퍼티(Properties)와 함수(Functions)를 가질 수 있습니다. 하지만 열거형(Enum)은 저장 프로퍼티(Stored Property)를 가질 수 없습니다. 클래스와 구조체만 저..
- Total
- Today
- Yesterday
- 파이썬알고리즘인터뷰#4장
- 백준 알고리즘#BackTracking
- 나무자르기#BOJ#이분탐색#Python
- 종이자르기#분할정복#BOJ#Python
- 병든 나이트#BOJ#탐욕법#Python
- 리모컨#완전탐색#BOJ#Python
- filter#isalnum#lower
- django
- 텀 프로젝트#백준알고리즘#Python
- API#lazy#
- NumberofDiscIntersections#Codility#Sort#Python
- 랜선자르기#이분탐색#BOJ#Python
- 토마토#백준알고리즘#Python
- 섬의개수#백준알고리즘#Python
- 미로 탐색#백준알고리즘#Python
- 터틀비치#리콘#xbox#controller
- N으로 표현#DP#Programmers#Python
- 날짜 계산#BOJ#완전탐색#Python
- 배열합치기#분할정복#BOJ#Python
- 순열사이클#BOJ#Python
- 암호코드#dp#BOJ#Python
- 쿼드트리#BOJ#분할정복#Python
- Brackets#Stacks and Queues#Codility#Python
- Triangle#Sorting#Codility#Python
- Distinct#Codility#Python
- django#slicing
- PassingCars#Codility#Python
- 공유기 설치#BOJ#이분탐색#Python
- 반복수열#백준알고리즘#Python
- Swift#Tuples#Range
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |