분류 전체보기
-
swiftui에서의 검색Swift/SwiftUI 2024. 2. 17. 00:40
계산 속성을 이용하여 나타낸다. filteredStation을 계산속성으로 나타내고, 그 목록을 나타냄. 조건절로 거른다. var filteredStations: [SubwayStation] { if searchText.isEmpty { return stations } else { let initials = KoreanTextConverter.getInitials(from: searchText) return stations.filter { station in let stationInitials = KoreanTextConverter.getInitials(from: station.name) return stationInitials.contains(initials) } } } List(filteredStat..
-
UIkit과 SwiftUI이용하여 Scroll Paging 구현하기Swift 2024. 1. 27. 00:26
[뷰 설명] StackView: Text와 ContentView를 묶어주는 뷰 ViewController: UiKit -> 실제 페이지 올라가는 뷰 ContentView: currentPage 값만 받아옴. UIKit을 SwiftUI로 변환 Coordinator가 존재하여 페이지 넘김이 이루어졌을 때, UIScrollViewDelegate를 채택. StackView import SwiftUI struct StackView: View { @State var currentPage: Int = 0 var body: some View { ZStack{ ContentView(currentPage: $currentPage) Text("\(currentPage)").foregroundStyle(.white) } } ..
-
[UIKit] 시간에 따라 넘어가는 이미지 배너Swift/UIKit 2024. 1. 24. 21:45
타이머 돌리고 이미지가 시간에 맞춰서 돌아가고, 페이징 기능(isPagingEnabled)가 있는 UIViewcontroller clipsToBounds 속성은 그대로 유지되어 이미지가 UIImageView의 경계를 넘어가지 않도록 합니다. import UIKit class ViewController: UIViewController { let scrollView = UIScrollView() let numberOfPages = 3 let pageWidth: CGFloat = UIScreen.main.bounds.width let pageHeight: CGFloat = UIScreen.main.bounds.height var currentPage = 0 var timer: Timer? let duratio..
-
[Swift] Firebase - FireStore 등록 addDocumentSwift 2024. 1. 7. 19:17
[준비 사항] 1. app- firebase연결까지는 된 상황. 2. firestore에 collection또한 만들어놓은 상태. firestore database / cloud firestore는 import FirebaseFirestore 해야함. firestore에서 만든 컬렉션에 데이터 등록 let db = Firestore.firestore() var ref: DocumentReference? = nil ref = db.collection("reportBin").addDocument(data: [ "address": binAddress, "reportReason": reason, "time": Timestamp(date: Date()) ]) { err in if let err = err { pr..
-
[SwiftUI] @EnvironmentObjectSwift/SwiftUI 2024. 1. 7. 02:37
EnvironmentObject는 언제 사용하는가? : 여러 뷰(:기준마다 다름)에서 이용될 경우. SwiftUI에서 제공하는 속성 래퍼 중 하나로, 뷰 계층 전체에서 접근 가능한 데이터를 제공하는 데 사용, 나의 경우 3개 이상의 뷰에서 사용되면 EnvironmentObject로 생성해서 넘긴다. EnvironmentObject를 사용하려면, 먼저 ObservableObject 프로토콜을 준수하는 클래스를 정의하고, 이 클래스의 인스턴스를 최상위 뷰에 .environmentObject(_:) 수정자를 사용하여 제공해야함. @main struct MyApp: App { @StateObject private var modelData = ModelData() var body: some Scene { Wind..