SwiftUI로 계산기앱 iOS독학

반복문을 활용해보기

목표

반복문을 이용하여 중복되는 코드를 줄여봅시다.

사전지식

ForEach, if~else

자가진단 테스트

Q1. ForEach를 이용하여 반복문을 만들 수 있나요?

참고자료

같은 것을 반복해주는 반복문

https://opentutorials.org/course/5027/32014

조건을 가지고 분기를 하는 조건문

https://opentutorials.org/course/5027/32013

완성화면

예제코드

  • 기존에 HStack 안에 반복되던 코드를 ForEach 반복문을 이용하여 중복을 제거해줍시다.
import SwiftUI

struct ContentView: View {
    
    @State private var totalNumber: String = "0"
    
    private let buttonData: [String] = ["7", "8", "9", "×"]
    
    var body: some View {
        ZStack {
            Color.black.ignoresSafeArea()
            
            VStack {
                Spacer()
                HStack {
                    Spacer()
                    Text(totalNumber)
                        .font(.system(size: 73))
                        .foregroundColor(.white)
                        .padding()
                
                }
                HStack {
                    ForEach(buttonData, id: \\.self) { row in
                        Button {
                            if totalNumber == "0" {
                                totalNumber = "7"
                            } else {
                                totalNumber += "7"
                            }
                        } label: {
                            Text(row)
                                .frame(width: 80, height: 80)
                                .background(Color("NumberButton"))
                                .cornerRadius(40)
                                .foregroundColor(.white)
                                .font(.system(size: 33))
                        }
                    }
                }
						}
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

 

댓글

댓글 본문