         }
         
         self.heightConstraint = NSLayoutConstraint(item: self, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 0.0)
+
         NSLayoutConstraint.activateConstraints([
             NSLayoutConstraint(item: self, attribute: .Top, relatedBy: .Equal, toItem: self.superview, attribute: .Top, multiplier: 1.0, constant: topOffset),
             NSLayoutConstraint(item: self, attribute: .Leading, relatedBy: .Equal, toItem: self.superview, attribute: .Leading, multiplier: 1.0, constant: 0.0),

        self.topViewController!.view.layoutIfNeeded()
        self.topViewController!.view.updateConstraintsIfNeeded()
        // set height of the info banner view
        self.heightConstraint.constant = self.textLabelHeight()
        UIView.animateWithDuration(0.3, animations: { () -> Void in
            self.layoutIfNeeded()
        })


extension RADInfoBannerView {
    // MARK: Private Methods
    func infoBannerViewHeight() -> CGFloat {
        let calculatedHeight = self.textLabelSize().height + RADInfoBannerViewHeightPadding
        return calculatedHeight > RADInfoBannerViewHeight ? calculatedHeight : RADInfoBannerViewHeight
    }
    
    func textLabelSize() -> CGSize {
        let textString = NSString(string: self.textLabel.text!)
        
        let screenWidth = CGRectGetWidth(UIScreen.mainScreen().bounds)
        let constraintRect = CGSize(width: screenWidth * 0.82, height: CGFloat.max)
        let boundingBox = textString.boundingRectWithSize(constraintRect, options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName: self.textLabel.font], context: nil)
        return boundingBox.size
    }
    
    func hideInfoBannerView(animated: Bool = true) {
