欢迎订阅专栏《SwiftUI 2020教程》
阅读本文您将学习到
- ForEach的优势
- 如何让不同的类型都可以支持ForEach
技术交流
我的QQ:QQ:3365059189
SwiftUI技术交流QQ群:518696470
什么是ForEach
SwiftUI的ForEach类型使我们能够通过转换集合中的每个元素来创建一系列视图。但是,由于ForEach重用了它创建的视图以优化性能(就像其他基于列表的视图一样,如UITableView和UICollectionView一样),它要求我们提供一种方法来标识我们所基于的每个元素它对
当我们要转换的元素符合Identifiable协议时,这种标识就会自动处理,我们可以将值的集合直接传递给ForEach。例如,在这里,我们将一组用户值转换为垂直排列的UserView实例的列表:
struct User: Identifiable {
let id: UUID
var name: String
}
struct UserList: View {
var users = [User]()
var body: some View {
VStack {
ForEach(users) { user in
UserView(user: user)
}
}
}
}