             } else if self.image == nil {
                 activityIndicator.color = self.titleColor
             }
-            activityIndicator.frame = self.defaultFrameForLoader()
             self.customLoader = activityIndicator
             self.customLoaderStart = { activityIndicator.startAnimating() }
             self.customLoaderStop = { activityIndicator.stopAnimating() }
+            self.customLoader?.frame = CGRect.zero
         }
         
-        // 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.customLoader?.frame = self.determineLoaderFrame()
     }
     
     /**

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

            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)
    }
}
