     hideTimer.invalidate()
 
     let initialOrigin = whistleWindow.frame.origin.y
-    whistleWindow.frame.origin.y = initialOrigin - Dimensions.height
+    whistleWindow.frame.origin.y = initialOrigin - titleLabelHeight
     whistleWindow.makeKeyAndVisible()
     UIView.animateWithDuration(0.2, animations: {
       self.whistleWindow.frame.origin.y = initialOrigin

  }

  public func hide() {
    let finalOrigin = view.frame.origin.y - Dimensions.height
    UIView.animateWithDuration(0.2, animations: {
      self.whistleWindow.frame.origin.y = finalOrigin
      }, completion: { _ in

  }

  public func setupFrames() {
    let labelWidth = UIScreen.mainScreen().bounds.width
    if let text = titleLabel.text {
        let neededDimensions =
            NSString(string: text).boundingRectWithSize(
                CGSize(width: labelWidth, height: CGFloat.infinity),
                options: NSStringDrawingOptions.UsesLineFragmentOrigin,
                attributes: [NSFontAttributeName: titleLabel.font],
                context: nil
            )
        titleLabelHeight = CGFloat(neededDimensions.size.height)
        titleLabel.numberOfLines = 0
    } else {
        titleLabel.sizeToFit()
    }

    whistleWindow.frame = CGRect(x: 0, y: 0, width: labelWidth,
      height: titleLabelHeight)
    view.frame = whistleWindow.bounds
    titleLabel.frame = view.bounds
  }
