전체 글
-
iOS) Custom Present 이용시 ViewContoller Life Cycle 문제iOS 2021. 1. 6. 15:46
기존 modalPresentaionStyle을 통해 presentation 방식을 지정했던 것과 다르게 UIPresentaionController를 사용하여 custom presentatin을 진행하는 경우 따로 설정을 해주지 않는 한 ViewController가 메모리에서 제거되지 않는 것으로 보인다. 아니 메모리에서 제거 되는 것이 아닌 viewDidDisappear메서드가 불리지 않는다. 이는 transition과정에서 매우 문제가 되며 present transition에선 영향이 없지만 dismiss transition에선 transitionContext.viewController(keyType:) 메소드를 통해 containerView에 추가하고 호출할 때, 메모리에서 사라지지 않았던 VC의 v..
-
iOS) Appstore Transition 따라하기(2) - Present TransitioniOS 2021. 1. 5. 13:49
AppStore Transition 따라하기의 정수와 묘미인 transition 구성이다. 우리가 만들 Transition은 총 4개이다. - Presentation - Present Transition - Dismiss Transition - interactive Transitioning 분기를 위하여 Transition을 총괄 해주는 역할을 할 UIVIewControllerTransitioningDelegate를 채택한 AppContentTransitionController를 만들어 주자. import Foundation class AppContentTransitionController: NSObject, UIViewControllerTransitioningDelegate { var superView..
-
iOS) Appstore Transition 따라하기(1) - 기본 구성iOS 2020. 12. 2. 07:50
우리가 알게 모르게 익숙해져 있는 Appstore의 Transition을 구현 해보고자 한다. 생각 보다 복잡해 보인다... 애니메이션은 나중에 생각하고 화면의 구성부터 생각해보자. View와 ViewController 아래 tab bar와 기본적으로 메인 viewController, cell을 터치시 생성 되는 Viewcontroller. collectionView와 collectionView cell로 구성하자. TabBarController - main viewController - tableView - contentView ㄴ DummyVC 시작 VC는 tab bar controller이다. menu화면인 menuVC와 tabbar의 구색을 갖추기 위한 더미 VC를 하나 만들어준 뒤 tabbarV..
-
RxSwift) SubjectRxSwift 2020. 11. 18. 20:57
Observable은 Event를 전달 한다. Observer는 Observable을 subscribe 하고 전달 되는 event를 처리한다. 또한 하나의 Observer는 하나의 observable만 구독이 가능 하다. Subject는 observable과 observer의 역할을 동시에 한다. 즉, Observable은 subject에 event를 보낼수 있고 subject는 observable을 구독 할 수 있다. 또 subject는 Observer에 event를 보낼 수 있고 observer는 subject를 구독 할 수 있다. Preview 4가지 subject - PublishSubject - BehaviorSubject - ReplaySubject - AsyncSubject Relay sub..
-
Swift) 함수 타입Swift 2020. 11. 18. 18:35
swift에서 함수는 1급 객체(First class Citizen)이다. 1급 객체는 3가지 특징을 가지고 있다. 1. 변수나 상수에 저장할 수 있다. 2. 파라미터로 전달 가능하다. 3. 함수에서 리턴할 수 있다. 위의 세가지를 충족시키기 위해선 자료형이 필요하다. 함수 또한 자료형이 존재한다. Syntax (Parameter Type) -> Return Type 위의 문법은 함수의 자료형을 나타낸다. 보통 함수를 선언 할때 리턴 값이 없다면 생략 가능 하지만 함수 타입에선 생략이 불가능 하다. 기존 언어들에서 사용하는 Void 대신 ()를 통해 없음을 대신 한다. func doSomething() { ... } () -> () // parameter가 없고 return도 없는 함수 타입 위의 doS..
-
RxSwift) Observable과 Observer카테고리 없음 2020. 11. 17. 18:24
Observable RxSwift에서 가장 중요한 키워드 observable: 관찰 가능한 (객체) Observable은 Event를 전달하는 객체 observer는 observable을 감시하고 있다가 전달되는 event를 처리 observer가 observable을 감시하는 것을 subscribe 라고 부름. 따라서 observer는 subscriber가 된다. observable이 발생 시키는 세 가지 event - Next: 발생하는 새로운 이벤트를 Next 이벤트를 통해 전달. 이벤트에 값이 들어 있다면 Next 이벤트와 함께 전달한다. 이 행위를 방출 이라고 표현. Emission - Erorr: 에러 - Complete: 완료 두 이벤트는 observable 라이프 사이클의 가장 마지막에 호..
-
Swift) OptionalSwift 2020. 11. 11. 04:22
optional은 무엇인가? 간단히 말해서 optional은 '값이 없음'을 나타냅니다. 들어가기 전, 기존에 C의 null이나 object-C의 nil과 Swift의 nil은 다릅니다. 특히 object-C의 nil은 '존재하지 않는 객체에 대한 포인터'지만 swift의 nil은 포인터가 아닌 값이 없음을 뜻하는 하나의 키워드입니다. 따라서 참조, 값 형식에 구애받지 않고 사용 가능합니다. 우리가 만든 변수 혹은 상수를 사용하기 위해선 반드시 값을 할당 시켜주어야 합니다. (물론 선언만 하는 것은 가능하지만 접근은 불가능합니다.) 초기화를 통해 swift는 변수와 상수의 자료형을 형식 추론합니다. swift는 언어 특성상 변수 혹은 상수에 값을 할당해 형식 추론(Type Inference)을 통해 자료..
-
Swift) swift 5에 추가된 String InterpolationSwift 2020. 11. 4. 00:06
출력에 대한 문자열 Interpolation은 단순히 placeholder를 통해 문자열 안에 문자열이 아닌 자료형을 넣어 표현 하거나, extension을 통해 CustomStringConvertible 프로토콜을 채택하여 수정한 후 출력 하였다. import Foundation struct Identity { var name: String var age: Int var phoneNumber: Int } var id = Identity(name: "UY", age: 20, phoneNumber: 01012341234) extension Identity: CustomStringConvertible { var description: String { return "Name is \(name), and \(a..