Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import SwiftUI
- struct User: Identifiable {
- var id: Int
- init(id: Int) {
- self.id = id
- }
- }
- struct MyCell: View {
- let user: User
- private let randomHeight: Length
- init(user: User) {
- self.user = user
- randomHeight = Length.random(in: 4...6) * 10
- // randomHeight = 50
- print("MyCell initialized. id:", user.id)
- }
- var body: some View {
- print("MyCell builded. id:", user.id)
- return Text(String(user.id))
- .frame(height: randomHeight, alignment: .center)
- }
- }
- struct ContentView : View {
- var users: [User] = (0..<100).map(User.init(id:))
- @State var selected: Set<Int> = []
- var body: some View {
- List(users, selection: $selected, action: { user in
- if self.selected.contains(user.id) {
- print(user.id, "will remove")
- self.selected.remove(user.id)
- print(user.id, "did remove")
- } else {
- print(user.id, "will add")
- self.selected.insert(user.id)
- print(user.id, "did add")
- }
- }) { user in
- MyCell(user: user)
- .background(self.selected.contains(user.id) ? Color.red : Color.white)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement