-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTemp.swift
64 lines (50 loc) · 1.89 KB
/
Temp.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//
// Temp.swift
// Eule
//
// Created by Hariom Palkar on 16/11/20.
// Copyright © 2020 Hariom Palkar. All rights reserved.
//
import SwiftUI
struct Temp: View {
@State var cards: [HomeCard] = homeCard
private func getCardWidth(_ geometry: GeometryProxy, id: Int) -> CGFloat {
let offset: CGFloat = CGFloat(cards.count - 1 - id) * 10
return geometry.size.width - offset
}
private func getCardOffset(_ geometry: GeometryProxy, id: Int) -> CGFloat {
return CGFloat(cards.count - 1 - id) * -10
}
private var maxID: Int {
return self.cards.map { $0.id }.max() ?? 0
}
var body: some View {
VStack {
GeometryReader { geometry in
VStack(spacing: 0) {
ZStack {
ForEach(self.cards, id: \.self) { HomeCard in
Group {
// Range Operator
if (self.maxID - 3)...self.maxID ~= HomeCard.id {
HomeCardView(card: HomeCard, onRemove: { removedUser in
// Remove that user from our array
self.cards.removeAll { $0.id == removedUser.id }
})
.animation(.spring())
.frame(width: self.getCardWidth(geometry, id: HomeCard.id), height: 250)
.offset(x: 0, y: self.getCardOffset(geometry, id: HomeCard.id))
}
}
}
}
}
}
}.padding()
}
}
struct Temp_Previews: PreviewProvider {
static var previews: some View {
Temp()
}
}