Study/iOS

    [iOS] Core Animation

    [iOS] Core Animation

    CALayer를 공부하다 보니 Core Animation에 대한 배경지식도 알고 있어야 할 것 같아서 쓰는 글이다. 아래는 Core Animation 공식 문서의 개요 부분을 간단히 정리해 보았다. Core Animation? Core Animation은 iOS와 OS X에서 사용할 수 있는 그래픽 렌더링 및 애니메이션 인프라로, 앱 내의 view 및 기타 시각적 요소를 animate 하는 데 사용한다. Core Animation을 사용하면 애니메이션 각각의 프레임을 짜는데 필요한 대부분의 작업이 자동으로 수행된다. 몇 가지 animation 매개변수를 구성하고(ex. 시작 지점 및 끝나는 지점) 시작하도록 지시만 하면 된다. 대부분의 실제 그리기 작업은 렌더링 가속화를 위해 메인 보드에 부착되어 있는 ..

    [iOS] CALayer

    [iOS] CALayer

    CALayer의 등장 배경 CALayer에서 CA는 Core Animation의 약자 CALayer는 Core Animation이 제공하는 요소 중 하나이다. 우리가 iOS 앱을 사용할 때 화면이 끊기지 않고 "부드럽게" 그려지게 하기 위해선 초당 60 프레임의 속도가 필요함 이 속도를 유지하기 위해 GPU에서 직접 실행되는, 그래픽에 매우 강력한 OpenGL이 생겨남 OpenGL은 그래픽 하드웨어에 가장 빠른 액세스를 제공함 but, 간단한 작업에도 매우 많은 양의 코드가 필요한 단점이 있었다. 그래서 더 적은 코드로 그래픽을 구현할 수 있는 Core Graphics가 생겨났고, 이후 Core Graphics 작업을 더욱 간단하게 하기 위해 Core Animation이 등장 Core Animation에..

    [iOS] UITextView에 링크 거는 법

    [iOS] UITextView에 링크 거는 법

    진행 중이던 프로젝트에서 TextView에 링크를 거는 작업을 해 보았다. 먼저 링크를 걸고 싶은 TextView에 다음과 같은 몇 가지 설정을 해주어야 한다._ = contentTextView.then { $0.isUserInteractionEnabled = true $0.isSelectable = true //Default $0.isEditable = false $0.dataDetectorTypes = .link $0.delegate = self }어떤 설정인지 차근차근 살펴보자. isUserInteractionEnabled먼저 isUserInteractionEnabled는 유저의 이벤트가 event queue로부터 무시되고 삭제됐는지 판단하는 Boolean 값이다.false로 설정하면 touch나 ..

    [iOS] UITextView와 UITextField의 차이 정리

    [iOS] UITextView와 UITextField의 차이 정리

    UITextView와 UITextField가 자꾸 헷갈려서 기억해 두기 위해 정리하는 글이다. UITextView 애플 공식 문서를 보면, UITextView는 A scrollable, multiline text region. (스크롤이 가능한 여러 줄 텍스트 영역)이라고 나와 있다. 실제로 UITextView는 UIScrollView 클래스를 상속받고 있다. 간단하게 말해서, 텍스트 문서의 본문을 쓸 때와 같이 여러 줄의 텍스트를 입력할 때 사용하는 게 UITextView이다. UITextField 반면에 UITextField는 여러 줄의 텍스트를 입력하는 것은 불가능하다. 텍스트를 한 줄만 입력할 때 사용하는 게 UITextField

    [iOS] 뷰 생명주기(View life cycle)에 대해서 알아보자

    [iOS] 뷰 생명주기(View life cycle)에 대해서 알아보자

    뷰 생명주기(View's life cycle)란? - 뷰가 나타나고 사라지는 주기를 말한다. 앱은 하나 이상의 뷰로 구성이 되어 있고, 각각의 뷰들은 라이프 사이클을 가지고 있다. 따라서 뷰의 라이프 사이클을 고려해서 로직을 넣고, 구성해야 한다. 각각 Did와 Will의 차이가 있는데 하나씩 살펴보자. ViewDidLoad : 뷰 컨트롤러 클래스가 생성될 때, 가장 먼저 실행이 된다. 특별한 경우가 아니라면 딱 한 번 실행되기 때문에 초기화할 때 사용할 수 있다. ViewWillAppear : 뷰가 생성되기 직전에 항상 실행이 되기 때문에 뷰가 나타나기 전에 실행해야 하는 작업들을 여기서 할 수 있다. ViewDidAppear : 뷰가 생성되고 난 뒤에 실행된다. 데이터를 받아서 화면에 뿌려주거나, 애..

    [iOS] 앱 생명주기(App life cycle)에 대해서 알아보자

    [iOS] 앱 생명주기(App life cycle)에 대해서 알아보자

    앱 생명주기(App's life cycle) - 앱 생명주기(App's Life Cycle)란? 앱의 실행부터 종료까지의 주기를 말하며, 앱이 foreground나 background에 있을 때 시스템 알림에 응답하고 기타 중요한 시스템 관련 이벤트를 처리하는 단계들을 말한다. 앱의 상태 변화 - iOS에서 앱은 3가지의 실행 모드와 5가지의 상태가 있고 항상 하나의 상태를 지니고 있다. Not Running 실행되지 않았거나, 앱 실행이 종료된 상태 Foreground Inactive: 실행 중이지만, 이벤트를 받고 있지 않는 상태. 예를 들어, 앱 실행 중에 알람이 화면을 덮어서 앱이 실질적으로 이벤트를 받고 있지 못하는 상태를 말한다. Active: 앱이 실질적으로 작동하고 있는 상태 Backgro..