iOS 152

UISheetPresentationController.... TabBarController를 가린다...

dayTrip이라는 어플에서 Map 검색 부분 처럼 UI를 구성하려고 했습니다. 찾아보니까 UISheetPresentationController의 detent를 사용하여 구성한 것으로 생각했습니다.   import UIKitimport MapKitclass MapViewController: UIViewController { // MARK: - Variables let locationManager = CLLocationManager() // MARK: - UI Components let mapView: MapView = { let mapView = MapView() mapView.translatesAutoresizingMaskIntoConstra..

iOS/UIKIT 2024.10.10

navigationController?.navigationBar.titleTextAttributes

다음과 같은 코드를 통해 네비게이션 바의 제목 텍스트를 빨간색으로 설정할 수 있습니다:navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.red]  또한, 텍스트의 폰트나 스타일을 설정하려면 여러 속성을 포함할 수 있습니다:navigationController?.navigationBar.titleTextAttributes = [ NSAttributedString.Key.foregroundColor: UIColor.blue, // 텍스트 색상 NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 20), /..

iOS/UIKIT 2024.10.09

날짜와 시간을 특정형식의 문자열로 반환하는 코드

Date 타입에 두 가지 계산 속성(computed properties)을 추가하여 날짜와 시간을 특정 형식의 문자열로 변환하는 기능을 제공 extension Date { var dayAndTimeText: String { let timeText = formatted(date: .omitted, time: .shortened) if Locale.current.calendar.isDateInToday(self) { let timeFormat = NSLocalizedString("Today at %@", comment: "Today at time format string") return String(format: timeFormat, ti..

iOS/Swift 2024.10.09

let title = "\(String(describing: model.title)) + 방문"여기서 왜 String(describing으로 감싼거야?그냥 "\(model.title) + 방문" 하면 안돼?

String(describing:)로 감싸는 이유는 주로 Optional 타입의 값을 안전하게 출력하려고 할 때 사용됩니다.만약 model.title이 Optional 타입이라면, 직접 "\(model.title)"으로 문자열 보간을 시도할 경우 Optional("value")와 같이 출력될 수 있습니다. 반면, String(describing: model.title)를 사용하면 값이 있을 경우 그 값을, 없을 경우 "nil"을 출력하게 됩니다.차이점:"\(model.title)": model.title이 nil일 경우 "Optional(nil)"이라는 문자열이 출력됩니다."String(describing: model.title)": model.title이 nil일 경우 "nil"이 출력됩니다.따라서, ..

iOS/Swift 2024.10.05

테이블 내에 있는 컬렉션뷰는 어떻게 구분할까?

위의 이미지를 보면 자연여행, 문화여행 이라는 문구가 있는 곳은 컬렉션뷰를 통해 구현했습니다.  그 밑에는 테이블뷰로 구성되어있고, 각 행은 컬렉션뷰 입니다.  각 뷰의 셀을 눌렀을 때 구분하고자 아래와 같이 코드를 작성했습니다. // MARK: - extension CollectionViewextension HomeViewController: UICollectionViewDelegate, UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { // 카테고리 부분 컬렉션 뷰 i..

iOS/UIKIT 2024.09.28

탭바 색상 설정

// .label 과 .secondaryLabel 사용 (간결함)tabBar.tintColor = .labeltabBar.unselectedItemTintColor = .secondaryLabel  tabBar.tintColor = .label / .secondaryLabel:간결함: UIColor의 미리 정의된 색상인 .label과 .secondaryLabel은 라이트/다크 모드에 맞게 자동으로 조정됩니다. 이 코드는 다크 모드 대응을 간단히 설정할 때 매우 유용합니다..label: 다크 모드에서는 흰색, 라이트 모드에서는 검은색 등, 시스템에 맞게 자동으로 설정된 텍스트 색상입니다..secondaryLabel: label보다 약간 더 흐린 색상으로, 라이트/다크 모드에 따라 변경됩니다. // UICo..

iOS/UIKIT 2024.09.23

compactMap - 새로운 배열 생성

compactMap은 Swift의 배열이나 컬렉션에서 사용되는 고차 함수로, 클로저를 적용하여 nil이 아닌 값만 필터링하고, 동시에 값을 변환하여 새로운 배열을 반환하는 기능을 제공합니다.  일반적인 map과 flatMap 함수와 달리, compactMap은 변환 과정에서 nil 값을 제거하는 역할을 합니다. 기본 문법let resultArray = array.compactMap { element in // 변환 및 필터링 작업}  compactMap 클로저 내부에서 nil을 반환하면 그 요소는 새로운 배열에서 제외되고, nil이 아닌 값만 결과 배열에 포함됩니다. 사용 예시1. Int 문자열 배열을 정수로 변환 숫자로 변환 가능한 문자열만 남기고 nil 값은 제거합니다.let stringArra..

iOS/Swift 2024.09.21