   }
 
   fileprivate func pulseAnimation(offset: CGFloat) {
-    UIView.animate(withDuration: actionAnimationIn / 2, delay: actionDelayIn, options: [.curveEaseIn, .allowUserInteraction, .beginFromCurrentState, .autoreverse], animations: {
+    UIView.animate(withDuration: actionAnimationIn / 2, delay: actionDelayIn, options: [.curveEaseInOut, .allowUserInteraction, .beginFromCurrentState, .autoreverse, .repeat], animations: {
       self.transform = CGAffineTransform(scaleX: offset, y: offset)
     }, completion: nil)
   }

  ///   - frame: The originating frame. The poptip's arrow will point to the center of this frame.
  ///   - duration: Optional time interval that determines when the poptip will self-dismiss.
  open func show(text: String, direction: PopTipDirection, maxWidth: CGFloat, in view: UIView, from frame: CGRect, duration: TimeInterval? = nil) {
    attributedText = nil
    self.text = text
    accessibilityLabel = text

  ///   - frame: The originating frame. The poptip's arrow will point to the center of this frame.
  ///   - duration: Optional time interval that determines when the poptip will self-dismiss.
  open func show(customView: UIView, direction: PopTipDirection, in view: UIView, from frame: CGRect, duration: TimeInterval? = nil) {
    resetView()

    text = nil
    attributedText = nil
    self.direction = direction
