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
복사