일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- apns
- struct
- CoreImage
- list
- http
- self
- 고차함수
- Refresh
- PushNotification
- Git
- calendar
- Observer
- error
- uikit
- Switch
- 글또
- NotificationCenter
- mvvm
- Animation
- singleton
- class
- ScrollView
- IOS
- SWIFTUI
- segue
- SWIFT
- escaping
- viewlifecycle
- 화면전환
- array
- Today
- Total
목록IOS/UIKit (13)
seong_hye, the developer

📘 MVP 아키텍쳐 (Model - View - Presenter)사용자 인터페이스와 비즈니스 로직을 분리하기 위한 소프트웨어 설계 패턴UI 로직 (View)과 비즈니스 로직 (Model)을 분리하고 중간에서 Presenter가 연결 역할을 맡는 구조UIKit 기반 앱에서 많이 사용되고 MVC의 단점을 보완하는 데 적합함테스트 용이성과 관심사 분리를 강조함 🔹 MVP 아키텍쳐 구성요소Model데이터, 비즈니스 로직, 네트워크 처리 등 앱의 핵심 기능 담당데이터베이스, 네트워크 API, 로컬 저장소 등과의 상호작용을 처리하며 데이터 상태 변화를 관리 View사용자 인터페이스(UI)로 UIView, ViewController, SwiftUI View를 의미사용자의 입력을 받고 데이터를 표시함가능한 단순..

페이지를 넘길 때 종이가 말려서 넘어가는 듯한 느낌을 주고 싶을 때 사용하는 기능에 대해 알아보자책을 넘기는 듯한 Page Curl은 SwiftUI에서는 기본 기능이 없어 UIPageViewController를 래핑해 사용함 📘UIPageViewControllerUIKit의 컨테이너 뷰 컨트롤러여러 페이지를 관리하고 스와이프 제스처나 애니메이션을 통해 페이지 간 전환을 제공⚠️ Page Curl은 iPhone에서 제약이 존재(스택 구조 / 회전 등), 최신 iOS UI 가이드에선 스크롤형을 더 권장🔹 생성 방법let pageVC = UIPageViewController( transitionStyle: .scroll, navigationOrientation: .horizontal, optio..

캘린더를 사용하는 과정에서 다른 라이브러리를 사용하지 않고주간 캘린더를 어떻게 구현하면 좋을지 고민하며 공부한 내용을 정리해 보려 합니다. 날짜에 따른 데이터를 받아오는 기능을 만드는 과정에서FSCalendar 라이브러리를 사용했던 것을캘린더를 공부해서 직접 만들어보자 하는 생각이 들게 되었습니다.Calendar 날짜별 장식이 있는 일정관리를 표시하고, 단일 날짜 또는 여러 날짜를 사용자가 선택할 수 있도록 제공하는 기능으로캘린더 뷰를 사용하여 사용자가 커스터마이징한 추가 정보(ex_ 스케줄)가 있는 특정 날짜를 표시할 수 있습니다.또한 캘린더 뷰를 사용하여 하나의 특정 날짜, 여러 날짜 또는 날짜가 없는 날짜를 선택할 수 있습니다.단일 선택 주간 달력 뷰를 구현하기 위해 collectionView를 사..

📘 Calendar 날짜별 장식이 있는 일정관리를 표시하고, 단일 날짜 또는 여러 날짜를 사용자가 선택할 수 있도록 제공하는 기능캘린더 뷰를 사용하여 사용자가 커스터마이징한 추가 정보(ex_ 스케줄)가 있는 특정 날짜 표시또한 캘린더 뷰를 사용하여 하나의 특정 날짜, 여러 날짜 또는 날짜가 없는 날짜를 선택 가능 🔹Calendar란Foundation 프레임워크의 구조체달력 시스템에 따라 날짜를 계산하고 연도/월/일/요일 등 구성 요소 추출 및 연산을 도와줌 ✅ 날짜 더하기 / 빼기let today = Date()let calendar = Calendar.current// 5일 후let fiveDaysLater = calendar.date(byAdding: .day, value: 5, to: toda..

📘UISearchControllerUIKit에서 공식적으로 제공하는 검색 UI 컨트롤러검색 바 (SearhBar) + 검색 결과 처리 (SearchResultsController)를 결합해주는 역할UITableView나 UICollectionView와 함께 자주 사용됨 🔹핵심 구성 요소구성 요소설명searchBar사용자가 검색어 입력하는 UIsearchResultUpdater입력된 텍스트에 따라 결과 업데이트 searchResultsController검색 결과를 표시할 뷰컨 (옵션, 기본은 현재 뷰)obscuresBackgroundDuringPresentation검색 중 배경 흐림 여부 (보통 false로 설정)definesPresentationContext다른 화면 전환 시 검색 바 상태 유지 여부..

📘 UIActivityViewControlleriOS에서 공유 시트 (Share Sheet)를 띄우기 위한 기본 UIKit 클래스ex. 이미지, 텍스트, URL, 파일 등을 메시지, 메일, 에어드롭, 기타 앱으로 공유하고 싶을 때 사용 🔹기본 예시class ViewController: UIViewController { @IBAction func shareButtonTapped(_ sender: Any) { let textToShare = "공유할 텍스트입니다." let urlToShare = URL(string: "https://sample.com") let activityVC = UIActivityViewController(activityItems: [textToSh..

UICollectionView 속에는 UICollectionViewLayout과 UICollectionViewFlowLayout이 있어사용할 때 헷갈려서 한번 이 둘의 차이에 대해 한 번 정리해보려고 한다.📘 UICollectionViewLayout - 추상 클래스 (설계도)모든 레이아웃의 기반이 되는 추상 클래스직접 사용하는 경우는 드물고, 서브클래싱해서 커스텀 레이아웃을 만들 때 사용함이 클래스를 상속해서 자신만의 layout behavior를 정의할 수 있음 🔍 주요 역할- 셀의 위치 및 크기 계산 (layoutAttributesForElements)- 콘텐츠 사이즈 제공 (collectionViewContentSize)- 레이아웃 무효화 처리 (shouldInvalidateLayout .....
📘UIKit - View Life Cycle (뷰 생명주기)UIKit에서의 View Life Cycle은 UIViewController가 화면에 나타나고 사라질 때어떤 메서드 순서로 호출되는 지를 의미한다. 🔹 전체 흐름🔍일반적인 호출 순서 (화면이 나타날 때)init() // 생성자 (코드에서 직접 호출 시)|loadView() // 뷰 계층을 생성 (직접 구현 가능)|viewDidLoad() // 뷰가 메모리에 로드도니 직후 (1회만 호출)|viewWillAppear() // 뷰가 나타나기 직전 (매번 호출)|viewDidAppear() // 뷰가 화면에 나타난 직후 (매번 호출) 🔍 화면이 사라질 때viewWillDisappear() // 뷰가 사라지기 직전|viewDidDis..