Build the unofficial Udemy Home Screen (5)
CategoryTextHeader 추가 .init(section: .textheader(id: "1233332"), body: [ .textHeader(id: "1234fds", text: "Categories", highlightedText: nil) 이렇게 적어주면 Categories가 생긴다. CategoryV...
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...
AsyncImage AsyncImage는 비동기로 이미지를 로드할때 사용한다. 로드중일때는 보통 Placeholder를 사용한다. 1. 뼈대 작성 struct ContentView: View { private let imageURL: String = "https://credo.academy/credo-academy@3x.png" ...
Info Button 기능 추가하기 Info Button을 누르면 Exchange Info 화면이 나오게 할 것이다. // Info Button HStack { Spacer() Button { ...
Info View 디자인하기 우선 파일을 하나 생성해주고 이때 UIkit을 할때는 Swift File을 했지만 이제는 아래에 있는 SwiftUI View로 만들어 준다. 그리고 다음과 같이 큰 틀을 짜준다. struct ExchangeInfo: View { var body: some View { ZStack { ...