 
   // MARK: Animation
   func animateOverlayPercentage(percentage: CGFloat) {
-    upvoteOverlayImageView.alpha = max(min(percentage, 1), 0)
-    downvoteOverlayImageView.alpha = max(min(-percentage, 1), 0)
+    let upvoteAlpha = max(min(percentage, 1), 0)
+    let downvoteAlpha = max(min(-percentage, 1), 0)
+
+    if upvoteAlpha != upvoteOverlayImageView.alpha {
+      upvoteOverlayImageView.alpha = upvoteAlpha
+    }
+
+    if downvoteAlpha != downvoteOverlayImageView.alpha {
+      downvoteOverlayImageView.alpha = downvoteAlpha
+    }
   }
 }
 

      .addDisposableTo(self.rx_disposeBag)
    label.textAlignment = .Right

    Theming.sharedInstance.textColor
      .bindTo(label.rx_textColor)
      .addDisposableTo(self.rx_disposeBag)


  private lazy var topBar: UIVisualEffectView = self.createTopBar()
  private lazy var bottomBar: UIVisualEffectView = self.createBottomBar()
  private lazy var statsLabel: UILabel = self.createStatsLabel()
  private lazy var upvoteOverlayImageView: VoteOverlayView = self.createUpvoteOverlayView()
  private lazy var downvoteOverlayImageView: VoteOverlayView = self.createDownvoteOverlayView()

  var contentView: UIView? = nil {
    didSet {
