Build the unofficial Udemy Home Screen (8)
FileManager Extension 구성하기 extension FileManager { static func modelFromJSON<T: Decodable>(fileName: String) -> T? { guard let path = Bundle.main.path(forResource: fi...
FileManager Extension 구성하기 extension FileManager { static func modelFromJSON<T: Decodable>(fileName: String) -> T? { guard let path = Bundle.main.path(forResource: fi...
Tap 이벤트를 VC로 전달하기 Combine의 EventPublisher를 사용하여 할것이다. HomeCollectionView에서 진행한다. enum Event { case itemTapped(HomeUIModel.Item) } private let eventSubject = PassthroughSubject<Ev...
다른 Course Swimlane을 추가 코드는 생략 이미지로 대체한다. HomeVC에서 내용을 추가, 수정했다. FeaturedCourseView 추가 CourseView의 내용을 가져오되, tag만 지워준다. 그리고 높이만 바꿔주었다. struct FeaturedCourseView: View { let imageLink: S...
CategoryTextHeader 추가 .init(section: .textheader(id: "1233332"), body: [ .textHeader(id: "1234fds", text: "Categories", highlightedText: nil) 이렇게 적어주면 Categories가 생긴다. CategoryV...
지금까지 빨간색 테두리로 된 부분을 만들었다. 주황색 테두리가 이제 만들 CourseView이다. 그전에 조금 수정을 한다. Textheader 간격주기 private func makeMainBannerSection() -> NSCollectionLayoutSection { let itemSize = NS...
이전에 Background Color를 Green으로 했던걸 지워준다. private func setup() { register(MainBannerCollectionViewCell.self, forCellWithReuseIdentifier: MainBannerCollectionViewCell.namedIdentifier) } ...
MainBannerCollectionViewCell 추가하기 이 파일은 View에 있지만, SwiftUI를 import 해주었다. import SwiftUI를 하게되면 UIkit 을 별도로 import를 해야하나? 이렇게 Definition을 보게되면 SwiftUI안에 UIKit을 이미 import한게 내장이...
시작전 기본 세팅 우선 스냅킷을 설치. Snapkit Dynamic은 여전히 에러가 발생하는듯하니 설치하지 말자. Xcode Project 생성시 생기는 파일에서 Info.plist, VC 빼고 나머지 파일들을 모두 Supporting Files에 넣어주었다. 그리고 이번엔 JSON을 사용하여 구성을하기에 JSON 파일을 하나 만들어 준다....
1. 기본 세팅 1. Asset에 이미지 파일 추가 설명은 생략한다. 그냥 드래그 앤 드롭으로 끝. 2. 이미지 로드 struct ContentView: View { var body: some View { Image("image-1") .resizable() .scaledToFi...