본문 바로가기

iOS

(31)
[iOS] 테이블 뷰 (TableView) - DataSource, Delegate TableView DataSource, Delegate DataSource와 Delegate DataSource : 데이터를 받아 이를 뷰에 그려주는 역할 ➡️ 무엇을 어떻게 보여줄 것인가? Delegate : 동작을 제시 ➡️ 사용자가 보이는 것들 중 무언가에 대한 액션을 취한다면 그에 대한 동작 수행 DataSource는 MVC 중 모델과 관련되어 있고, Delegate는 테이블뷰의 동작과 모양을 관리하기 때문에 컨트롤러의 역할과 가깝다. UITableViewDataSource The methods adopted by the object you use to manage data and provide cells for a table view. protocol UITableViewDataSource @r..
[iOS] 디자인 패턴 | MVC MVC 패턴 (Model - View - Controller) MVC 디자인 패턴은 애플리케이션의 객체를 모델, 뷰, 컨트롤러의 세 가지 역할 중 하나로 할당한다. 이 패턴은 앱 내에서 객체가 수행하는 역할 뿐만 아니라 객체가 서로 통신하는 방식을 정의한다. 세 유형의 객체는 각각 추상적인 경계에 의해 다른 객체와 구분되며, 그 경계를 넘어 다른 유형의 객체와 통신한다. 각각의 역할을 분리하여, 개발과 유지보수를 편리하게 한다. 모델 (Model) 프로그램이 하는 일 자체를 의미한다. 애플리케이션과 관련된 데이터를 캡슐화하고, 해당 데이터를 조작하고 처리하는 로직과 계산을 정의한다. ex. 게임 속 캐릭터의 정보, 주소록의 연락처 뷰 (View) 사용자와 상호작용하는 interface 애플리케이션 내에서..
[iOS] Foundation Foundation Framework Access essential data types, collections, and operating-system services to define the base layer of functionality for your app. 원시 데이터 타입(String, Int, Double), 컬렉션 타입(Array, Dictionary, Set) 및 운영체제 서비스를 사용해 애플리케이션의 기본적인 기능을 관리하는 프레임워크이다. Foundation 프레임워크는 데이터 타입, 날짜 및 시간 계산, 필터 및 정렬, 네트워킹 등의 기본 기능을 제공한다. Foundation 프레임워크에서 정의한 클래스, 프로토콜 및 데이터 타입은 iOS, macOS 등 모든 애플 SDK에서 사용된..
[iOS] UIKit 기초가 모자라도 너무 모자라 ~~ ㅠ UIKit Framework Construct and manage a graphical, event-driven user interface for your iOS or tvOS app. iOS 애플리케이션의 사용자 인터페이스를 구현하고 이벤트를 관리하는 프레임워크 UIKit은 Cocoa Touch Framework 에 포함되어 있다. UIKit UIKit은 iOS와 tvOS 플랫폼에서 사용한다. UIKit 프레임워크는 제스처 처리, 애니메이션, 그림 그리기, 이미지 및 텍스트 처리 등 사용자 이벤트 처리를 위한 클래스를 포함한다. 테이블 뷰, 슬라이더, 버튼, 텍스트 필드, 얼럿 창 등 앱의 화면을 구성하는 요소 또한 포함한다. UIKit 클래스 중 UIRespond..
[iOS] 내비게이션 인터페이스 Navigation Interface 내비게이션 인터페이스 (Navigation Interface) 란? iOS에서 내비게이션 인터페이스는 주로 계층적 구조의 화면전환을 위해 사용되는 드릴 다운 인터페이스(drill-down interface)이다. 드릴 다운 인터페이스란 아래 그림과 같이 각 선택할 수 있는 항목에 대한 세부항목이 존재하는 인터페이스이다. 내비게이션 인터페이스는 내비게이션 컨트롤러를 통해 구현한다. 내비게이션 컨트롤러 (Navigation Controller) 내비게이션 컨트롤러는 컨테이너 뷰 컨트롤러로써, 내비게이션 스택을 사용하여 다른 뷰 컨트롤러를 관리한다. 내비게이션 스택에 담겨서 컨텐츠를 보여주는 뷰 컨트롤러들을 컨텐츠 뷰 컨트롤러라고 한다. 내비게이션 컨트롤러는 두 개의 뷰를..
[iOS] Photos - Requesting changes to the Photo Library PhotoKit > PHPhotoLibrary PHPhotoLibrary A shared object that manages access and changes to the user’s shared photo library : 사용자의 사진 라이브러리에 대한 접근 및 변경을 관리하는 공유 객체 class PHPhotoLibrary : NSObject 사용자의 애플리케이션이 Photos 컨텐츠에 접근해도 될 지 허가 를 받거나, 확인 에셋 또는 컬렉션을 변경 ex. 새로운 에셋 삽입, 컬렉션의 구성 변경 library 에서 변경 사항이 생기면 전송되는 update 메시지를 등록 func performChanges(_ changeBlock: @escaping () -> Void, completionHandle..
[iOS] Photos - Asset Loading Asset Loading 이 클래스를 사용하여 이미지, 비디오, 라이브 포토 콘텐츠를 요청할 수 있다. PHImageManager An object that facilitates retrieving or generating preview thumbnails and asset data. : 미리보기 썸네일 및 에셋과 전체 크기의 이미지 또는 비디오 데이터를 검색하거나 생성하는 방법을 제공 class PHImageManager : NSObject func requestImage(for asset: PHAsset, targetSize: CGSize, contentMode: PHImageContentMode, options: PHImageRequestOptions?, resultHandler: @escaping..
[iOS] Photos - 날짜 순으로 에셋 가져오기 let fetchOptions = PHFetchOptions() fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)] let fetchResult = PHAsset.fetchAssets(with: fetchOptions) return fetchResult.firstObject 1. PHFetchOptions 선언하기 ➡️ 에셋 또는 컬렉션 객체를 가져올 때 Photos에서 반환하는 결과에 필터링, 정렬 등 영향을 주는 옵션 2. PHFetchOptions 내 sortDiscriptors 의 key를 "creationDate" 로 지정 3. fetch할 때 해당 PHFetchOption을 등록해 옵션을 ..