 
     var foldProgress: CGFloat = 0 {
         willSet {
-            if newValue >= 0 && newValue <= 1 {
-
-                let normalHeight = self.normalHeight
-                let attachmentURLsIsEmpty = attachments.isEmpty
-
-                UIView.animateWithDuration(0.25, delay: 0, usingSpringWithDamping: 0.75, initialSpringVelocity: 0.0, options: UIViewAnimationOptions(rawValue: 0), animations: { [weak self] in
-
-                    self?.nicknameLabelCenterYConstraint.constant = -10 * newValue
-                    self?.messageTextViewTopConstraint.constant = -25 * newValue + 4
-
-                    if newValue == 1.0 {
-                        self?.nicknameLabelTrailingConstraint.constant = attachmentURLsIsEmpty ? 15 : (5 + 40 + 15)
-                        self?.messageTextViewTrailingConstraint.constant = attachmentURLsIsEmpty ? 15 : (5 + 40 + 15)
-                        self?.messageTextViewHeightConstraint.constant = 20
-                    }
-
-                    if newValue == 0.0 {
-                        self?.nicknameLabelTrailingConstraint.constant = 15
-                        self?.messageTextViewTrailingConstraint.constant = 15
-                        self?.calHeightOfMessageTextView()
-                    }
-
-
-                    self?.heightConstraint?.constant = FeedView.foldHeight + (normalHeight - FeedView.foldHeight) * (1 - newValue)
-
-                    self?.layoutIfNeeded()
-
-                    let foldingAlpha = (1 - newValue)
-                    self?.distanceLabel.alpha = foldingAlpha
-                    self?.mediaCollectionView.alpha = foldingAlpha
-                    self?.timeLabel.alpha = foldingAlpha
-                    self?.mediaView.alpha = newValue
-
-                    self?.messageLabel.alpha = newValue
-                    self?.messageTextView.alpha = foldingAlpha
-
-                }, completion: { _ in
-                })
+            guard newValue >= 0 && newValue <= 1 else {
+                return
+            }
+
+            let normalHeight = self.normalHeight
+            let attachmentURLsIsEmpty = attachments.isEmpty
+
+            UIView.animateWithDuration(0.25, delay: 0, usingSpringWithDamping: 0.75, initialSpringVelocity: 0.0, options: UIViewAnimationOptions(rawValue: 0), animations: { [weak self] in
+
+                self?.nicknameLabelCenterYConstraint.constant = -10 * newValue
+                self?.messageTextViewTopConstraint.constant = -25 * newValue + 4
 
                 if newValue == 1.0 {
-                    foldAction?()
+                    self?.nicknameLabelTrailingConstraint.constant = attachmentURLsIsEmpty ? 15 : (5 + 40 + 15)
+                    self?.messageTextViewTrailingConstraint.constant = attachmentURLsIsEmpty ? 15 : (5 + 40 + 15)
+                    self?.messageTextViewHeightConstraint.constant = 20
                 }
 
                 if newValue == 0.0 {
-                    unfoldAction?(self)
+                    self?.nicknameLabelTrailingConstraint.constant = 15
+                    self?.messageTextViewTrailingConstraint.constant = 15
+                    self?.calHeightOfMessageTextView()
                 }
+
+                self?.heightConstraint?.constant = FeedView.foldHeight + (normalHeight - FeedView.foldHeight) * (1 - newValue)
+
+                self?.layoutIfNeeded()
+
+                let foldingAlpha = (1 - newValue)
+                self?.distanceLabel.alpha = foldingAlpha
+                self?.mediaCollectionView.alpha = foldingAlpha
+                self?.timeLabel.alpha = foldingAlpha
+                self?.mediaView.alpha = newValue
+
+                self?.messageLabel.alpha = newValue
+                self?.messageTextView.alpha = foldingAlpha
+
+            }, completion: { _ in
+            })
+
+            if newValue == 1.0 {
+                foldAction?()
+            }
+
+            if newValue == 0.0 {
+                unfoldAction?(self)
             }
         }
     }

        socialWorkContainerView.addGestureRecognizer(tapSocialWork)
    }

    func switchFold(sender: UITapGestureRecognizer) {

        if foldProgress == 1 {
            foldProgress = 0

        mediaCollectionView.dataSource = self
        mediaCollectionView.delegate = self

        let tapToggleFold = UITapGestureRecognizer(target: self, action: #selector(FeedView.toggleFold(_:)))
        addGestureRecognizer(tapToggleFold)
        tapToggleFold.delegate = self

        let tapAvatar = UITapGestureRecognizer(target: self, action: #selector(FeedView.tapAvatar(_:)))
        avatarImageView.userInteractionEnabled = true
