Performance optimization — do not add animation while already animated, do not update calculate text height frame using sizeThatFits: method if text haven't changed since last time.