     case SlideFromBottomBackToBottom
     case SlideFromLeftToRight
     case SlideFromRightToLeft
+    case SlideFromTopToBottom
+    case SlideFromTopBackToTop
 }
 
 public class TTGSnackbar: UIView {


            // Bottom margin constraint
            bottomMarginConstraint = NSLayoutConstraint.init(item: self, attribute: .Bottom,
                    relatedBy: .Equal, toItem: superview, attribute: .Bottom, multiplier: 1, constant: -bottomMargin)

            // Avoid the "UIView-Encapsulated-Layout-Height" constraint conflicts
            // http://stackoverflow.com/questions/25059443/what-is-nslayoutconstraint-uiview-encapsulated-layout-height-and-how-should-i
            leftMarginConstraint?.priority = 999
            rightMarginConstraint?.priority = 999

            // Add constraints
            self.addConstraint(heightConstraint!)
            superView.addConstraint(leftMarginConstraint!)
            superView.addConstraint(rightMarginConstraint!)
            superView.addConstraint(bottomMarginConstraint!)

            // Show
            showWithAnimation()
        } else {

        }
    }

    /// Bottom margin. Default is 4, only work when snackbar is at bottom
    public dynamic var bottomMargin: CGFloat = 4 {
        didSet {
            bottomMarginConstraint?.constant = -bottomMargin
            self.layoutIfNeeded()
        }
    }
    
    /// Top margin. Default is 4, only work when snackbar is at top
    public dynamic var topMargin: CGFloat = 4 {
        didSet {
            topMarginConstraint?.constant = topMargin
            self.layoutIfNeeded()
        }
    }
