on master help sign in
Seem to have finalized Card design and animation
79558bailyakooo0
Melk/CardContainer.swift+18
@@ -14,8 +14,14 @@ class CardContainer: UIView {
14 blurView.effect = blur
14 blurView.effect = blur
15 card.transform = smallTransform
15 card.transform = smallTransform
16 card.layer.opacity = 0
16 card.layer.opacity = 0
17+ shadowView.layer.opacity = 0
18+ shadowView.transform = smallTransform
19+ shadowView.layer.shadowRadius = 0
17 UIView.animate(withDuration: 0.5, delay: 0, options: [.curveEaseInOut], animations: {
20 UIView.animate(withDuration: 0.5, delay: 0, options: [.curveEaseInOut], animations: {
18 self.card.transform = self.normalTransform
21 self.card.transform = self.normalTransform
22+ self.shadowView.transform = self.normalTransform
23+ self.shadowView.layer.shadowRadius = self.shadowRadius
24+ self.shadowView.layer.opacity = 1
19 self.blurView.effect = nil
25 self.blurView.effect = nil
20 self.card.layer.opacity = 1
26 self.card.layer.opacity = 1
21 }, completion: nil)
27 }, completion: nil)
@@ -52,15 +58,25 @@ class CardContainer: UIView {
52
58
53 private let card: CardView
59 private let card: CardView
54 private let blurView = UIVisualEffectView()
60 private let blurView = UIVisualEffectView()
61+ private let shadowView = UIView()
55 private let blur = UIBlurEffect(style: UIBlurEffectStyle.light)
62 private let blur = UIBlurEffect(style: UIBlurEffectStyle.light)
56 private let scale: CGFloat = 0.5
63 private let scale: CGFloat = 0.5
57 private let smallTransform: CGAffineTransform
64 private let smallTransform: CGAffineTransform
58 private let normalTransform = CGAffineTransform(scaleX: 1, y: 1)
65 private let normalTransform = CGAffineTransform(scaleX: 1, y: 1)
66+ private let shadowRadius: CGFloat = 12
67+ private let shadowOpacity: Float = 0.3
59
68
60 override init(frame: CGRect) {
69 override init(frame: CGRect) {
61 card = CardView(frame: frame)
70 card = CardView(frame: frame)
62 smallTransform = CGAffineTransform(scaleX: scale, y: scale)
71 smallTransform = CGAffineTransform(scaleX: scale, y: scale)
63 super.init(frame: frame)
72 super.init(frame: frame)
73+ shadowView.layer.shadowColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1).cgColor
74+ shadowView.layer.shadowRadius = shadowRadius
75+ shadowView.layer.shadowOpacity = shadowOpacity
76+ shadowView.backgroundColor = UIColor.clear
77+ shadowView.clipsToBounds = false
78+ shadowView.layer.shadowOffset = CGSize.zero
79+ addSubview(shadowView)
64 addSubview(card)
80 addSubview(card)
65 addSubview(blurView)
81 addSubview(blurView)
66 }
82 }
@@ -73,6 +89,8 @@ class CardContainer: UIView {
73 super.layoutSubviews()
89 super.layoutSubviews()
74 card.layoutIfNeeded()
90 card.layoutIfNeeded()
75 self.frame = card.frame
91 self.frame = card.frame
92+ shadowView.layer.shadowPath = CGPath(roundedRect: card.frame, cornerWidth: card.layer.cornerRadius, cornerHeight: card.layer.cornerRadius, transform: nil)
93+ shadowView.frame = card.frame
76 blurView.frame = card.frame
94 blurView.frame = card.frame
77 }
95 }
78
96
Melk/CardView.swift+1−1
@@ -31,7 +31,7 @@ class CardView: UIView {
31 super.init(frame: frame)
31 super.init(frame: frame)
32 layer.masksToBounds = true
32 layer.masksToBounds = true
33 layer.cornerRadius = 20
33 layer.cornerRadius = 20
34− backgroundColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
34+ backgroundColor = #colorLiteral(red: 0.9638966278, green: 0.9734401588, blue: 0.9734401588, alpha: 1)
35 }
35 }
36
36
37 required init?(coder aDecoder: NSCoder) {
37 required init?(coder aDecoder: NSCoder) {
Melk/SecondaryViewController.swift+2−2
@@ -29,7 +29,7 @@ class SecondaryViewController: UIViewController {
29class SecondaryView: UIView {
29class SecondaryView: UIView {
30
30
31
31
32− private let spacer: CGFloat = 16
32+ private let spacer: CGFloat = 32
33
33
34 func add(result: StreamingServiceResult) {
34 func add(result: StreamingServiceResult) {
35 switch result {
35 switch result {
@@ -49,6 +49,7 @@ class SecondaryView: UIView {
49
49
50 override init(frame: CGRect) {
50 override init(frame: CGRect) {
51 super.init(frame: frame)
51 super.init(frame: frame)
52+ backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
52 addSubview(cards)
53 addSubview(cards)
53 }
54 }
54
55
@@ -77,7 +78,6 @@ class SecondaryView: UIView {
77 break
78 break
78 }
79 }
79 }
80 }
80− print(cards.arrangedSubviews.count)
81 }
81 }
82
82
83 private let padding = CGPoint(x: 32, y: 32)
83 private let padding = CGPoint(x: 32, y: 32)