흔히 우리가 아는 foreach문과 SwiftUI에서의 ForEach는 다르다.
struct ForEach<Data, ID, Content> where Data : RandomAccessCollection, ID : Hashable
함수가 아닌 구조체였던것.
ID : Hashable -> 식별된 데이터
Data : RandomAccessCollection -> 콜렉션에서 가져옴
Content -> 뷰 계산
이전의 글 중 func를 버튼으로 리턴하는 함수와 함께 써본다면 다음과 같음
var body: some View {
VStack {
Text("컴퓨터")
HStack{
ForEach(1...3 ,id: \.self) {i in
rcpButton(i)
}
}
}
.padding()
}
...
func rcpButton(_ num : Int) -> Button<Text> {
if num==1{
return Button {
} label: {
Text("가위")
}
}else if num==2{
return Button {
} label: {
Text("바위")
}
}else {
return Button {
} label: {
Text("보")
}
}
}
Id:\.self는 Int값을 사용할때 형식이 맞지 않기때문에 사용해주어야한다.
이렇게 코드를 잘 활용하면 동적으로 버튼을 만들 수 있음
'PROGRAMMING CODE > SWIFT' 카테고리의 다른 글
[SwiftUI] 함수로 버튼뷰 리턴받기 (some View 개념) (0) | 2023.06.30 |
---|---|
[SwiftUI] LaunchScreen (로딩화면 구현하기) (0) | 2023.06.26 |
[SwiftUI] 버튼을 함수로 리턴하기 (0) | 2023.06.26 |
[UIkit] 음성출력예제 (0) | 2023.06.12 |
[Swift] 기초 예제 5 (딕셔너리) (0) | 2023.06.08 |