KoreaMango 나무

[iOS App Dev Tutorials] SwiftUI - Views 본문

iOS/iOS App Dev Tutorials

[iOS App Dev Tutorials] SwiftUI - Views

KoreaMango 2022. 5. 2. 03:41
 

Apple Developer Documentation

 

developer.apple.com

1. Creating a Card View

Color

SwiftUI 프레임 워크는 View의 인스턴스로서 color를 다룬다.

 

에셋 카탈로그와 이름을 같게 enum을 만들어준다.

 

accentColor는 해당 색의 보색으로 강조할 수 있게 만들어 주는 색이다.

그 색에 맞게 하얀색과 검정색을 반환한다.

메인 칼라 함수를 써서 enum의 rawValue를 Color 타입에 넣어 초기화를 한다.

View의 background에 theme의 mainColor로 초기화하는 모습

LabelStyle

SwiftUI에서 제공하는 LabelStyle 프로토콜을 사용해서

앱 전체에서 일관된 스타일의 레이블을 사용할 수 있게 한다.

  • 여기서 static으로 trailingIcon을 정의한 이유는 코드를 더 읽기 쉽게 만드는 선행 점 구문을 사용해 호출 할 수 있기 때문이다.

2. Displaying Data in a List

List

List는 static 하거나 dynamic 한 view로 채울 수 있다.

동적으로 행을 생성하기 위해 SwiftUI ForEach view 구조를 사용한다.

VStack, HStack 과 같은 컨테이너 뷰에서 사용한 구문과 비슷하게 행을 추가한다.

scrums 배열과 key path를 이니셜라이져의 title 프로퍼티에 전달한다.

ForEach는 컬렉션에서 개별 항목을 식별하는 방법이 필요하다.

지금 scrums에서는 이름이 다 다르기 때문에 제목 속성을 사용해서 각 항목을 식별한다.

Identifiable

ForEach structures 식병가능한 데이터를 반복함으로써 동적 뷰를 생성한다.

각 데이터의 고유한 값을 넣어주기 위해 식별 가능한 프로토콜을 준수하게 한다.

프로토콜의 엔티티에는 id 라는 안전한 식별자를 넣는 것이 좋다.

Identifiable 프로토콜을 쓰면 지켜야 하는 것들

  1. id 엔티티를 추가한다.
  2. init 을 한다.

id를 사용해서 ForEach의 title을 지웠다.

App

App body

앱의 body 프로퍼티는 앱의 기본 유저 인터페이스를 나타내는 계층 뷰를 포함하는 Scene을 return한다.

WindowGroup

SwiftUI가 제공하는 가장 원시적인 Scenes중의 하나이다.

iOS에서 WindowGroup에 추가한 View는 장치 전체 화면에 꽉 채워서 보여진다.

Quiz

ForEach Closure은 항상 View를 리턴해야한다.

The ForEach closure needs to return a view, but the guard statement returns Void if an item is unavailable. You can fix the error by using an if statement instead of guard.

 

https://developer.apple.com/tutorials/app-dev-training#swiftui-essentials

 

Apple Developer Documentation

 

developer.apple.com