     private var progressLayer : CAShapeLayer?
     private var borderLayer : CAShapeLayer?
     
+    public required init(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        self.contentMode = .Redraw
+        self.backgroundColor = UIColor.clearColor()
+    }
+    
+    public override init(frame: CGRect) {
+        super.init(frame: frame)
+        self.contentMode = .Redraw
+        self.backgroundColor = UIColor.clearColor()
+    }
+    
+    public override func drawRect(rect: CGRect) {
+        super.drawRect(rect)
+        updateProgress()
+    }
+    
     public var progress : CGFloat = 0 {
         willSet(v) {
             if v > 1.0 || v < 0.0 {

        }
        didSet {
            dispatch_async(dispatch_get_main_queue(), {
                self.updateProgress()
                
                if(self.progress == 0 || self.progress >= 1) {
                    self.hidden = true
                }

        arc.fill()
        progressLayer?.path = arc.CGPath
        progressLayer?.fillColor = self.tintColor.CGColor
        CGContextRestoreGState(ctx)
    }
    /*
    override public func layoutSubviews() {
        super.layoutSubviews()
    }
    */

}
