             contentView.layer.insertSublayer(bubbleBodyShapeLayer, atIndex: UInt32(bubblePosition.count))
         }
 
-        UIView.performWithoutAnimation { [weak self] in
-            self?.makeUI()
+        UIView.setAnimationsEnabled(false); do {
+            makeUI()
         }
+        UIView.setAnimationsEnabled(true)
 
         textContainerView.userInteractionEnabled = true
         let tap = UITapGestureRecognizer(target: self, action: #selector(ChatRightTextCell.tapMediaView))

            return textContentTextViewWidth
        }

        UIView.performWithoutAnimation { [weak self] in

            if let strongSelf = self {

                strongSelf.makeUI()

                let textContentTextViewFrame: CGRect
                if let _textContentTextViewFrame = layoutCache.textContentTextViewFrame {
                    textContentTextViewFrame = _textContentTextViewFrame

                } else {
                    let textContentTextViewWidth = adjustedTextContentTextViewWidth()

                    textContentTextViewFrame = CGRect(x: CGRectGetMinX(strongSelf.avatarImageView.frame) - YepConfig.chatCellGapBetweenTextContentLabelAndAvatar() - textContentTextViewWidth, y: 3, width: textContentTextViewWidth, height: strongSelf.bounds.height - 3 * 2 - strongSelf.bottomGap)

                    layoutCache.update(textContentTextViewFrame: textContentTextViewFrame)
                }
                
                strongSelf.textContainerView.frame = textContentTextViewFrame

                strongSelf.textContentTextView.frame = strongSelf.textContainerView.bounds
                
                let bubbleBodyFrame = CGRectInset(strongSelf.textContainerView.frame, -12, -3)
                
                strongSelf.bubbleBodyShapeLayer.path = UIBezierPath(roundedRect: bubbleBodyFrame, byRoundingCorners: UIRectCorner.AllCorners, cornerRadii: CGSize(width: YepConfig.ChatCell.bubbleCornerRadius, height: YepConfig.ChatCell.bubbleCornerRadius)).CGPath

                strongSelf.bubbleTailImageView.center = CGPoint(x: CGRectGetMaxX(bubbleBodyFrame), y: CGRectGetMidY(strongSelf.avatarImageView.frame))
                
                strongSelf.dotImageView.center = CGPoint(x: CGRectGetMinX(bubbleBodyFrame) - YepConfig.ChatCell.gapBetweenDotImageViewAndBubble, y: CGRectGetMidY(strongSelf.textContainerView.frame))
            }
        }

        if let sender = message.fromFriend {
            let userAvatar = UserAvatar(userID: sender.userID, avatarURLString: sender.avatarURLString, avatarStyle: nanoAvatarStyle)

            textContentTextView.textAlignment = ((size.height - textContentTextView.font!.lineHeight) < 20) ? .Center : .Left

            if ceil(size.width) != textContentTextViewWidth {
                if abs(ceil(size.width) - textContentTextViewWidth) >= YepConfig.ChatCell.magicWidth {
                    textContentTextViewWidth += YepConfig.ChatCell.magicWidth
                }
