@@ -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 {
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
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)
@@ -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