본문 바로가기
iOS

[iOS][SwiftUI] Todo 만들기

by teamnova 2023. 5. 24.
728x90

안녕하세요 오늘은 Todo를 만들어보도록 하겠습니다.

 

1.데이터 모델 만들기

Todo 항목을 저장하기 위한 데이터 모델을 만들어야합니다. 이 예제에서는 간단한 Todo 항목을 나타내는 TodoItem 구조체를 만들겠습니다.

struct TodoItem: Identifiable {
    let id = UUID()
    var title: String
    var completed: Bool
}

2. 사용자 인터페이스 만들기

Todo 항목을 표시하기 위해 SwiftUI의 List 뷰 요소를 사용할 수 있습니다. 또한 Toggle 뷰 요소를 사용하여 각 Todo 항목의 완료 여부를 표시할 수 있습니다.

struct TodoListView: View {
    @State var todoItems: [TodoItem] = [
        TodoItem(title: "Buy groceries", completed: false),
        TodoItem(title: "Do laundry", completed: true),
        TodoItem(title: "Walk the dog", completed: false)
    ]
    
    var body: some View {
        List(todoItems) { item in
            HStack {
                Toggle("", isOn: $todoItems[index].completed)
                Text(item.title)
            }
        }
    }
}

3.사용자 입력 처리 및 리스트 업데이트

새 Todo 항목을 추가하기 위해 사용자가 입력한 텍스트를 저장하는 @State 변수와 TextField 뷰 요소를 추가할 수 있습니다. 그리고 Button 뷰 요소를 추가하여 새로운 항목을 Todo 리스트에 추가할 수 있습니다.

 

struct TodoListView: View {
    @State var todoItems: [TodoItem] = [
        TodoItem(title: "Buy groceries", completed: false),
        TodoItem(title: "Do laundry", completed: true),
        TodoItem(title: "Walk the dog", completed: false)
    ]
    @State var newTodoItemTitle = ""
    
    var body: some View {
        VStack {
            HStack {
                TextField("New item", text: $newTodoItemTitle)
                Button(action: {
                    let newItem = TodoItem(title: newTodoItemTitle, completed: false)
                    todoItems.append(newItem)
                    newTodoItemTitle = ""
                }) {
                    Text("Add")
                }
            }
            List(todoItems) { item in
                HStack {
                    Toggle("", isOn: $todoItems[index].completed)
                    Text(item.title)
                }
            }
        }
    }
}

감사합니다.

'iOS' 카테고리의 다른 글

[iOS][SwiftUI] 달력 만들기  (0) 2023.07.04
[iOS][SwiftUI] 스톱워치 만들기  (0) 2023.06.19
[iOS][SwiftUI] 메모장 만들기  (0) 2023.05.07
[iOS][Swift UI] 계산기 예제  (0) 2023.04.20
[iOS][Swift UI] List View 사용하기  (0) 2023.04.04