             self.setNeedsDisplay()
         }
     }
+    
+    /**
+     Calculates the default frame for the loader
+     
+     - returns: the default frame for the loader
+     */
+    private func defaultFrameForLoader() -> CGRect {
+        return CGRect(
+            x: self.frame.width/2 - self.titleLabel!.frame.height/4,
+            y: self.frame.height/2 - self.titleLabel!.frame.height/4,
+            width: self.titleLabel!.frame.height/2,
+            height: self.titleLabel!.frame.height/2)
+    }
 }

            } else if self.image == nil {
                activityIndicator.color = self.titleColor
            }
            activityIndicator.frame = self.defaultFrameForLoader()
            self.customLoader = activityIndicator
            self.customLoaderStart = { activityIndicator.startAnimating() }
            self.customLoaderStop = { activityIndicator.stopAnimating() }
        }
        
        // Setup loader
        if self.customLoader?.frame == CGRect.zero && self.image == nil {
            self.customLoader?.frame = self.defaultFrameForLoader()
        } else if self.image != nil {
            self.customLoader?.frame = self.imageView!.frame
        }
    }
    
    /**

        self.isLoading = true
        
        self.prepareForLoading()
        
        
        if self.hideTitleOnLoad || self.image == nil {
            self.positionValue = .centered
