-
SwiftUI iOS15_106 - refreshSwiftUI 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
}
}
}
끌어당기기전 리스트 끌어당긴후 리스트 내용이 바뀜 'SwiftUI 100 레시피 > New IOS 15' 카테고리의 다른 글
SwiftUI iOS15_110 - 흐림(Blur) 처리 (0) 2022.07.01 SwiftUI iOS15_109 - Swift Actions (0) 2022.07.01 SwiftUI iOS15_108 - Searchable views (0) 2022.07.01 SwiftUI iOS15_107 - TimeLine (0) 2022.07.01 SwiftUI iOS15_105 - AsyncImage (0) 2022.07.01