ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SwiftUI iOS15_106 - refresh
    SwiftUI 100 레시피/New IOS 15 2022. 7. 1. 17:19

    List를 끌어당기면 새로고침이 되는 방법

    예) 리스트의 인위적인 알파벳이 끌어당기면 다른 알파벳으로 바뀜

     

    #1. ContentView

    import SwiftUI

     

    struct ContentView: View {

        @StateObject private var customerListVM = CustomerListViewModel()

        

        var body: some View {

            List(customerListVM.customers, id:\.self){ customer in

                Text(customer)

            } .onAppear{

                

                customerListVM.fetch()

            } .refreshable {

                customerListVM.fetch()

            }

        }

    }

     

    struct ContentView_Previews: PreviewProvider {

        static var previews: some View {

            ContentView()

        }

    }

     

    #2. CustomerListViewModel

    import Foundation

     

    class CustomerListViewModel: ObservableObject{

        

        @Published var customers: [String] = []

        

        func fetch(){

            let letters = "abcdefghi"

            var names: [String] = []

            

            DispatchQueue.main.asyncAfter(deadline: .now() + 2.0){

                

                for _ in 1...20{

                    let randomName = String((0...letters.count).map{ _ in letters.randomElement()! })

                    names.append(randomName)

                }

                

                self.customers = names

            }

        }

    }

     

    끌어당기기전 리스트

     

    끌어당긴후 리스트 내용이 바뀜

     

    댓글

Designed by Tistory.