import SwiftUI
struct ContentView: View {
let alphabetArray: [String] = ["a","b","c","d","e","f","g"]
var body: some View {
VStack {
Text("AlphabetList")
.font(.title)
.padding(10)
ForEach(alphabetArray, id: \.self){alphabet in
Text(alphabet)
}
}
}
}
AlphabetArray라는 배열이 있다. ForEach문을 돌며 a부터 g까지 반환한다.
그런데, 순서를 매기고 싶어졌다. 하지만 ForEach는 for .. in과 달리 'i += 1'과 같이 숫자를 하나씩 더하는 것이 불가능하다. 그래서 'enumerated()'를 사용하여 Index를 생성한다.
변경사항
- alphabetArray -> Array(alphabetArray.enumerated())
- id: \.self -> id: \.offset
- alphabet -> index, alphabet
결과
import SwiftUI
struct ContentView: View {
let alphabetArray: [String] = ["a","b","c","d","e","f","g"]
var body: some View {
VStack {
Text("AlphabetList")
.font(.title)
.padding(10)
ForEach(Array(alphabetArray.enumerated()), id: \.offset){index, alphabet in
Text("\(index) : \(alphabet)")
}
}
}
}
다음과 같이 index가 추가되어 순서를 반환할 수 있다.
Print 내역 보기
print 내역을 통해 데이터 구조를 알아보았다.
내 코드에서는 offset이 index, element가 alphabet이다.
'컴퓨터언어 > Swift' 카테고리의 다른 글
[SwiftUI] Text의 줄 제한 없애기(linelimit) (0) | 2023.09.17 |
---|---|
[Swift/SwiftUI] GestureState (0) | 2023.08.09 |
[Swift/SwiftUI] Button Style (버튼 밖을 눌러도 버튼이 눌리는 현상 해결) (0) | 2023.08.09 |
[Swift] CGFloat (0) | 2023.08.09 |
[Swift] Codable (0) | 2023.08.09 |