         self.loadingLabel.text = ""
         
         //We add the subviews
-        self.darkView.addSubview(self.loadingLabel)
+        //self.darkView.addSubview(self.loadingLabel)
         self.darkView.addSubview(self.activityIndicatorView)
+        
+        //self.loadingLabel.setTranslatesAutoresizingMaskIntoConstraints(false)
+        self.activityIndicatorView.setTranslatesAutoresizingMaskIntoConstraints(false)
+        
+        let viewsInDarkView = NSDictionary(objects: [self.loadingLabel,self.activityIndicatorView], forKeys: ["loadingLabel","activityIndicatorView"])
+        let metricsInDarkView = ["activityIndicatorViewWidth":NSNumber(float: ACTIVITY_INDICATOR_VIEW_WIDTH),
+                                 "activityIndicatorViewHeight":NSNumber(float: ACTIVITY_INDICATOR_VIEW_HEIGHT)] as NSDictionary
+        
+        self.darkView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:[activityIndicatorView(activityIndicatorViewWidth)]", options: NSLayoutFormatOptions(0), metrics: metricsInDarkView, views: viewsInDarkView))
+        self.darkView.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[activityIndicatorView(activityIndicatorViewHeight)]", options: NSLayoutFormatOptions(0), metrics: metricsInDarkView, views: viewsInDarkView))
+        
+        self.activityIndicatorCenterInY = NSLayoutConstraint(item:self.activityIndicatorView, attribute: .CenterY, relatedBy: .Equal, toItem: self.darkView, attribute: .CenterY, multiplier: 1.0, constant: 0)
+        let centerInX:NSLayoutConstraint = NSLayoutConstraint(item:self.activityIndicatorView, attribute: .CenterX, relatedBy: .Equal, toItem: self.darkView, attribute: .CenterX, multiplier: 1.0, constant: 0)
+        
+        self.darkView.addConstraint(centerInX)
+        self.darkView.addConstraint(self.activityIndicatorCenterInY)
+
         
         //Finally we call our super
         super.init(frame: CGRect(origin: CGPointZero, size: UIScreen.mainScreen().bounds.size))

private let DARK_VIEW_HEIGHT:Float = 150
private let DARK_VIEW_WIDTH:Float = 150

private let ACTIVITY_INDICATOR_VIEW_HEIGHT:CGFloat = 65
private let ACTIVITY_INDICATOR_VIEW_WIDTH:CGFloat = 65

private let NUMBER_OF_LINES_LOADING_LINES = 2


        Label shown when the activity indicator is running, if it's nil or the text it's empty nothing will show and the activity indicator will be placed in the middle of the dark view
    */
    let loadingLabel:UILabel
    
    private let activityIndicatorCenterInY:NSLayoutConstraint
    
    private let DARK_VIEW_CODER_KEY = "DARK_VIEW_CODER_KEY"
    private let ACTIVITY_INDICATOR_VIEW_CODER_KEY = "ACTIVITY_INDICATOR_VIEW_CODER_KEY"
    private let LOADING_LABEL_CODER_KEY = "LOADING_LABEL_CODER_KEY"
    private let ACTIVITY_INDICATOR_CENTER_Y_CODER_KEY = "ACTIVITY_INDICATOR_CENTER_Y_CODER_KEY"
    
//MARK: - Init Methods
    required init(coder aDecoder: NSCoder) {
        self.darkView = aDecoder.decodeObjectForKey(DARK_VIEW_CODER_KEY) as UIView
        self.activityIndicatorView = aDecoder.decodeObjectForKey(ACTIVITY_INDICATOR_VIEW_CODER_KEY) as UIActivityIndicatorView
        self.loadingLabel = aDecoder.decodeObjectForKey(LOADING_LABEL_CODER_KEY) as UILabel
        self.activityIndicatorCenterInY = aDecoder.decodeObjectForKey(ACTIVITY_INDICATOR_CENTER_Y_CODER_KEY) as NSLayoutConstraint
        
        super.init(coder: aDecoder)
        
