본문 바로가기

iOS/swift18

[Swift] TableView의 모든 것을 알아보기!!! 안녕하세요..? 저는 ㅇㅅㅈ이고요오늘은 테이블뷰에 대해서 좀 더 자세히 공부해보았어요 그럼 정리 시작! iOS 앱 개발에서 많이 쓰이는 UI 컴포넌트 중 하나가 바로 UITableView! (그치만 컬랙션뷰가 더 많이 쓰인다는 사실)수십 개, 수백 개의 데이터를 스크롤 가능한 리스트 형태로 보여줄 때 사용하며, 성능과 유연성 모두 뛰어남이 글에서는 TableView의 기본 구조부터 작동 메커니즘, 실전 코드까지 차근차근 정리해보겠어요TableView란?iOS에서 여러 개의 데이터를 세로 방향으로 나열해 보여주는 컴포넌트-> 그래서 위아래로 쭈르륵 스크롤 가능)UICollectionView보다 구조가 단순하고 리스트 형태 UI에 최적화되어 있음-> 현업에서는 더 고도화된 사용을 위해 컬랙션 뷰를 주로 쓴다.. 2025. 5. 20.
[Swift] 테이블뷰 메커니즘 구성하는 법 안녕하세요 오늘은 테이블뷰를 구성하는 방법에 대해 알아보아요 레쯔고! 테이블뷰는 많은 데이터를 효율적으로 보여주기 위한 리스트 UI 컴포넌트임!화면에 보이는 셀만 메모리에 올리고, 스크롤할 때 재사용하면서 새로운 데이터를 표시함전체 메커니즘UITableView: 뷰 컨트롤러 안에 들어가는 리스트 뷰임ㅇㅇ 테이블 뷰 자체는 데이터가 없음 → 데이터는 따로 전달해줘야 함DataSource 프로토콜:테이블뷰가 몇 개의 셀이 필요한지, 각 셀에 어떤 데이터를 넣을지 묻는 인터페이스꼭 구현해야 하는 2가지 메서드 있음:numberOfRowsInSection: 몇 개의 셀이 필요한지 반환cellForRowAt: 각 셀에 어떤 내용을 표시할지 반환UITableViewCell: 셀 하나하나를 의미! 셀은 dequeue.. 2025. 5. 10.
[swift] 동기와 비동기 동기(Synchronous)와 비동기(Asynchronous)는 작업 실행 순서와 처리 방식에 관련된 개념임Swift에서는 특히 async/await, DispatchQueue, completion handler 같은 방식으로 비동기 처리를 많이 사용함✅ 동기(Synchronous)작업이 순차적으로 실행됨앞 작업이 끝나야 다음 작업이 실행됨코드 흐름이 직관적이지만, 시간 오래 걸리는 작업이 있으면 앱이 멈춰 보일 수 있음func fetchData() -> String { // 서버에서 데이터 가져온다고 가정 return "데이터"}let result = fetchData() // 완료될 때까지 기다림print(result)✅ 비동기(Asynchronous)작업이 백그라운드에서 실행되고, 바로.. 2025. 4. 29.
[swift] for - in과 forEach문에 대해 알아보자! 안냐세요 오늘은 for -in 문법과 forEach 문법에 대해 알아보고 차이점을 살펴볼게요! 고고 for-in과 forEach는 Swift에서 컬렉션을 순회(iterate)할 때 사용하는 대표적인 문법임!각각 장단점이 있음🔁 for-in 문법let numbers = [1, 2, 3, 4, 5]for number in numbers { print(number)}명령형 스타일임continue, break, return 사용 가능await와 함께 비동기(for-await-in) 처리 가능가독성이 좋고 범용적임 🔄 forEach 메서드let numbers = [1, 2, 3, 4, 5]numbers.forEach { number in print(number)}함수형 스타일임 (클로저를 파라미터로.. 2025. 4. 29.
[swift] 화면 전환 | push, present 화면 전환 방법push랑 present는 다른 방식으로 화면을 전환하는 두 가지 방식임사용하는 상황, 애니메이션, 뒷화면 유지 방식이 다름✅ push 방식 (navigationController 기반)스택 구조로 화면 쌓음 (ex: A → B → C → back 하면 C → B → A)내비게이션 바가 기본 제공됨뒤로 가기(back)가 자동으로 생김UINavigationController 안에서만 사용 가능let detailVC = DetailViewController()navigationController?.pushViewController(detailVC, animated: true)사용 예:목록에서 상세 보기설정 → 하위 설정 메뉴탭 내에서 단계적으로 들어가는 구조✅ present 방식 (모달)새로운.. 2025. 4. 19.
[iOS] ViewController의 생명주기 📱 UIViewController 생명주기(View Life Cycle) 간단 정리iOS에서 화면 하나하나는 UIViewController로 구성됨이 컨트롤러는 화면이 로드되고 보여지고 사라지는 일련의 과정 속에서특정 메서드들이 자동으로 호출됨 → 이를 뷰 컨트롤러 생명주기라고 함 🤓주요 메서드 요약메서드언제 호출?주로 하는 일viewDidLoad()뷰가 메모리에 올라올 때 (딱 1번)초기 UI 설정, 데이터 불러오기viewWillAppear(_:)화면이 보이기 직전화면 갱신, 네비바 설정 등viewDidAppear(_:)화면이 보인 직후애니메이션 실행, 로딩 종료 처리viewWillDisappear(_:)화면이 사라지기 직전저장 처리, 타이머 중지 등viewDidDisappear(_:)화면 완전히 .. 2025. 4. 18.
다크모드 / 라이트 모드 전환 및 적용하는 방법 | 벡터 이미지 적용하기 - 다크모드 라이트 모드 전환 및 적용하기 - 배경 이미지 모드 지정하기- 에셋 이미지 벡터 이미지 사용하기 : 벡터 이미지 사용하면 이미지 깨짐 없음! 2025. 3. 29.
[Swift] Void에 대해 아라보자 🔹 Swift에서 Void란?Void는 반환값이 없는 함수의 반환 타입을 나타내는 키워드임.Swift에서는 Void는 사실 () (빈 튜플)과 동일함.🔹 1. Void의 사용 예시func sayHello() -> Void { print("Hello, Swift!")}위 함수에서 -> Void는 반환값이 없음을 의미함.하지만 Swift에서는 -> Void를 생략 가능하기 때문에 보통 이렇게 씀:func sayHello() { print("Hello, Swift!")}두 함수는 완전히 같은 의미임.🔹 2. Void와 ()의 관계Swift에서는 Void는 빈 튜플 ()의 타입 별칭임.즉, 다음 두 표현은 같은 의미임:typealias Void = ()그래서 다음과 같은 표현도 가능함:func .. 2025. 2. 24.
[Swift] 이벤트 소비와 전파 이벤트 소비와 전파의 차이는 주로 이벤트 핸들러에서 true와 false 반환 값에 의해 결정됨.이벤트 소비 (Event Consuming):이벤트 핸들러에서 true를 반환하면 이벤트가 더 이상 전파되지 않고 소비되었음을 의미함. 즉, 이후 다른 핸들러나 처리 로직으로 이벤트가 전달되지 않음.예: marker2.touchHandler에서 true를 반환하면, 마커 2 터치 이벤트 이후 지도 터치 이벤트로 전파되지 않음.이벤트 전파 (Event Propagation):이벤트 핸들러에서 false를 반환하면 이벤트가 계속해서 전파되어 다른 핸들러나 처리 로직에서 처리될 수 있음.예: marker1.touchHandler에서 false를 반환하면, 마커 1 터치 이벤트가 처리된 후에도 mapView(_:di.. 2025. 2. 20.