Multiple MVCs MVC들을 결합하여 더 큰 어플리케이션을 만들어봅시다. 보라색은 Controller 파란색은 Model 노란색은 View입니다. 블라인드 통신구조를 통해 다른 MVC와 통신해야합니다. iOS에서는 다른 MVC를 뷰로 가지는 특수 컨트롤러들이 존재합니다. UITabBarController UISplitViewController UINavigationController UITabBarController 연락처앱에서 확인 할 수 있는 컨트롤러입니다. 하단에 탭이 있으며 탭 하나당 하나의 MVC를 가집니다. 각 View는 대시보드 영역에 나타나게 됩니다. 탭바의 아이콘과 이름은 UITabbarItem을 통해 변경이 가능합니다. 탭바는 5개까지 구성하고 6개 이상이라면 마지막 탭을 더보기..
이제 멀치터치 이벤트 내용입니다. 제스처 앞서 UIView에서 그리는 방법을 알아봤습니다. 터치는 어떻게 알수 있을까요? Touch Down, Move, Up등에 대한 모든 터치 이벤트를 알아낼 수 있습니다.(저수준/구현량이 많음) 아니면 특정 제스터에 동작도 인식이 가능합니다.(스와이프, 확대/축소 등)(고수준/구현량이 적음) UIGestureRecognizer 인스터스를 통해 제스쳐을 인식할 수 잇습니다. 추상 클래스이며, 모든 제스처를 인식 할 수는 없습니다. 하지만 많은 서브 클래스들을 통하여 다양한 제스처를 인식할 수 있습니다. 크게 2가지 동작이 필요합니다. 1. 제스처 인식기를 UIView에 추가합니다.(UIView에게 특정 제스처를 인식하라고 알려줍니다.) 2. 제스처가 인식되었을대 처리할..
계속해서 실습니다. 접근성 메뉴의 폰트 크기 변경시 업데이트 앱 실행 도중 접근성 메뉴에서 더 큰 텍스트 변경후 앱으로 돌아왔을시 숫자 및 기호가 커지질 않습니다. 변경 후 카드를 다시 그리지 않아 발생한 문제입니다. 해당 설정이 변경된 경우 탐지하는 함수에서 setNeetDisplay 호출이 필요합니다. traitCollectionDidChange 함수를 쓰면 뷰에서 확인이 가능합니다. 파라미터로 UITraitCollection가 전달되며 해당 객체로, 회전하는지 가로모드인지, 위의 폰트 설정등을 확일 할 수 있습니다. 해당 함수에서 다시 그리도록 코드를 추가합니다. override func traitCollectionDidChange(_ previousTraitCollection: UITraitCol..
실습 내용입니다. 커스텀 UIView 만들기 클래스 정의를 위해 파일을 생성합니다. CocoaTouch나 UIKit의 서브 클레스를 생성하기 위해서는 CocoaTouch를 선택합니다. 파일이름은 PlayCardView하고 Subclass of는 UIView로 합니다. 생성 후 코드는 아래와 같습니다. draw(rect) 함수가 주석처리가 되어있습니다. iOS에서 해당 함수를 구현되어 있는지 확인을 합니다. 구현이 되어 있을시 따로 화면 밖에 버퍼를 생성하여 드로잉을 위한 준비를 합니다. 이러한 작업은 비용이 들기 때문에 draw 함수를 사용하지 않는다면 그냥 주석인 채로 둡니다. draw 함수를 사용하지 않는 View에는 Stack View가 있습니다. 자신이 아닌 안에 쌓여있는 View들이 Draw를 ..
실습 내용입니다. Enum Objc에서 Int 값으로 사용했으나 swift에서는 다른 타입들도 사용이 가능합니다. String 타입으로 선언한 enum입니다. enum Suit: String { case spades = "♠️" case hearts = "❤️" case dimonds = "♣️" case clubs = "♦️" } 연관 데이터를 전달할 수 있습니다. 1~13까지의 카드를 표현하기 위해서는 예전엔 아래와 같은 방식으로 작성했을것 입니다. enum Rank { case ace case two case three ... case jack case queen case king } 연관된 데이터를 사용하여 작성시 아래와 같은 코드로 작성이 가능합니다. enum Rank { case ace cas..
UIColor UIColor를 사용하여 색상을 지정합니다. 미리 지정된 색상이 존재합니다. let green = UIColor.green RGB, HSB나 패턴(반복되는 이미지)을 통해 생생이 가능합니다. UIView의 배경색 아래 변수를 통하여 배경색을 지정합니다. var backgroundColor: UIColor // we used this for our Concentration buttons 알파값(투명도) 지정 알파값은 0.0(완전 투명) ~ 1.0(완전 불투명) 값을 가질 수 있습니다. let semitransparentYellow = UIColor.yellow.withAlphaComponent(0.5) 뷰에 투명도를 적용하기 뷰의 opaque(불투명) 변수값을 false로 설정해야합니다.(기..
Views UIView의 서브 클래스들을 알아볼 예정입니다. UI View란 정사각형의 영역입니다. 좌표계를 사용하며 드로잉을 위해 사용됩니다. 터치 이벤트를 처리합니다. 계층 계층 구조로 이루어져있습니다. 하나의 상위 View와 여러개의 자식뷰를 가집니다.( 상위뷰는 nil일수도 있습니다. ) superView는 자신이 속한 View를 뜻합니다. var superview: UIView? // 상위 View var subviews: [UIView] // 자식 Views 계층 관리 주로 XCode Interface Builder를 통하여 뷰 계층을 관리하게 됩니다. 버튼을 추가하거나 스택뷰에 넣거나와 같은 작업들이 수행됩니다. 물론 코드를 통해서도 관리가 가능합니다. func addSubview(_ vie..
Thrown Error Swift에서 에러를 다루는 방법입니다. 스위프트의 함수에서는 에러를 전달할 수 있습니다. 에러를 전달하는 경우 throws 키워드를 적어줘야합니다. func save() throws do-catch문을 사용하여 던져진 에러값을 받을 수 있습니다. throws 키워드가 존재하는 함수 호출시 try 키워드를 붇여줘야합니다. do { try context.save() } catch let error { // error will be something that implements the Error protocol, e.g., NSError // usually these are enums that have associated values to get error details throw e..
- Total
- Today
- Yesterday
- Windows
- 자바
- 안드로이드 스튜디오
- static
- 콜백함수
- 다운로드
- 콜백
- C++
- 비트 확인
- Android
- Git
- 개발환경
- 안드로이드
- swift
- Java
- 설치
- 맴버함수
- Windows10
- 윈도우
- ios
- 깃
- xcode
- Stanford
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |