on master help sign in
Fixed memory issues.

CardContainers are now being released from memory properly.

commitd4bc7b807e22af009e2fe78d0b3d0ca59069bd5a authorilyakooo0 <ilyakooo0@gmail.com> dateSat 22 Jul 2017, 19:28 (9 years ago) parent8f0e183
3 files changed+25−2
Melk/CardContainer.swift+1−1 Melk/SecondaryViewController.swift+22−1 Melk/StackView.swift+2
Melk/CardContainer.swift+1−1
@@ -53,7 +53,7 @@ class CardContainer: UIView {
5353 private let card: CardView
5454 private let blurView = UIVisualEffectView()
5555 private let blur = UIBlurEffect(style: UIBlurEffectStyle.light)
56− private let scale: CGFloat = 0.35
56+ private let scale: CGFloat = 0.5
5757 private let smallTransform: CGAffineTransform
5858 private let normalTransform = CGAffineTransform(scaleX: 1, y: 1)
5959
Melk/SecondaryViewController.swift+22−1
@@ -62,6 +62,24 @@ class SecondaryView: UIView {
6262 }
6363 private var animate: Bool = false
6464
65+ private func cleanCards() {
66+ outLoop: for (i, element) in cards.arrangedSubviews.enumerated() {
67+ switch element {
68+ case .view(let card):
69+ let cardFrame = convert(card.frame, from: cards)
70+ if cardFrame.intersects(bounds) {
71+ break outLoop
72+ } else {
73+ cards.arrangedSubviews.remove(at: i-1)
74+ cards.arrangedSubviews.remove(at: i-1)
75+ }
76+ case .spacer(_):
77+ break
78+ }
79+ }
80+ print(cards.arrangedSubviews.count)
81+ }
82+
6583 private let padding = CGPoint(x: 32, y: 32)
6684
6785 override func layoutSubviews() {
@@ -72,10 +90,13 @@ class SecondaryView: UIView {
7290 self.cards.frame.origin.x = self.frame.width - self.padding.x - self.cards.frame.width
7391 }
7492 if animate {
75− UIView.animate(withDuration: 0.7, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.6, options: [], animations: updates, completion: nil)
93+ UIView.animate(withDuration: 0.7, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.6, options: [], animations: updates, completion: { _ in
94+ self.cleanCards()
95+ })
7696// UIView.animate(withDuration: 0.4, delay: 0.0, options: [.curveEaseOut], animations: updates, completion: nil)
7797 } else {
7898 updates()
99+ self.cleanCards()
79100 }
80101 animate = false
81102 }
Melk/StackView.swift+2
@@ -44,6 +44,8 @@ class StackView: UIView {
4444 super.layoutSubviews()
4545 print("laying out subviews")
4646
47+ subviews.map({$0.removeFromSuperview()}) // TODO: There must be a better way!
48+
4749 var height: CGFloat = 0
4850 var width: CGFloat = 0
4951 switch axis {