Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. import SwiftUI
  2.  
  3. struct User: Identifiable {
  4. var id: Int
  5.  
  6. init(id: Int) {
  7. self.id = id
  8. }
  9. }
  10.  
  11. struct MyCell: View {
  12. let user: User
  13. private let randomHeight: Length
  14.  
  15. init(user: User) {
  16. self.user = user
  17. randomHeight = Length.random(in: 4...6) * 10
  18. // randomHeight = 50
  19. print("MyCell initialized. id:", user.id)
  20. }
  21.  
  22. var body: some View {
  23. print("MyCell builded. id:", user.id)
  24. return Text(String(user.id))
  25. .frame(height: randomHeight, alignment: .center)
  26. }
  27. }
  28.  
  29. struct ContentView : View {
  30. var users: [User] = (0..<100).map(User.init(id:))
  31. @State var selected: Set<Int> = []
  32.  
  33. var body: some View {
  34. List(users, selection: $selected, action: { user in
  35. if self.selected.contains(user.id) {
  36. print(user.id, "will remove")
  37. self.selected.remove(user.id)
  38. print(user.id, "did remove")
  39. } else {
  40. print(user.id, "will add")
  41. self.selected.insert(user.id)
  42. print(user.id, "did add")
  43. }
  44. }) { user in
  45. MyCell(user: user)
  46. .background(self.selected.contains(user.id) ? Color.red : Color.white)
  47. }
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement