Search
Duplicate

ForEach

A structure that computes views on demand from an underlying collection of identified data.

Declaration

struct ForEach<Data, ID, Content> where Data : RandomAccessCollection, ID : Hashable
Swift
복사

Overview

ForEach 스트럭쳐는 데이터(객체)가 담겨져있는 컬렉션을 순회하며 각각의 데이터(객체)에 대한 작업을 수행한다. (cf. 파이썬의 map 함수)

ForEach 를 사용하기 위한 조건

1.
컬렉션들에 담긴 데이터 객체들은 모두 Identifiable 프로토콜을 준수해야한다.
2.
준수하지 않는다면 ForEach 생성자에게 id 파라미터를 전달해야 한다.

ForEach 사용 방법

var body: some View { ForEach(데이터객체가 담긴 콜렉션) { 객체 in // 각 객체별 실행할 메소드 객체.property 객체.method() } }
Swift
복사
ForEach 를 사용해서 몇몇 데이터 타입에 대한 RandomAccessCollection 에 기초하는 뷰를 생성하라. 컬렉션들의 원소들은 Identifiable 프로토콜을 준수해야한다. 또는 ForEach 생성자에게 id 파라미터를 전달해야 한다.
다음 예시는 Identifiable 프로토콜을 준수하는 NamedFont 타입을 생성하는 예시이다. ForEach instance 는 어레이를 순회한다. 순회하면서 새로운 Text instance( 어레이로 제공되는 SwiftUI 의 Font style을 디스플레이 하는) 를 제공한다
private struct NamedFont: Identifiable { let name: String let font: Font var id: String { name } } private let namedFonts: [NamedFont] = [ NamedFont(name: "Large Title", font: .largeTitle), NamedFont(name: "Title", font: .title), NamedFont(name: "Headline", font: .headline), NamedFont(name: "Body", font: .body), NamedFont(name: "Caption", font: .caption) ] var body: some View { ForEach(namedFonts) { namedFont in Text(namedFont.name) .font(namedFont.font) } }
Swift
복사