             setLockViewNeedUpdate(needRecalculateDotsFrame: false)
         }
     }
+    @IBInspectable var normalOuterCircleColor: UIColor = UIColor.blackColor() {
+        didSet {
+            setLockViewNeedUpdate(needRecalculateDotsFrame: false)
+        }
+    }
+    @IBInspectable var highlightedOuterCircleColor: UIColor = HUIPatternLockView.defaultColor {
+        didSet {
+            setLockViewNeedUpdate(needRecalculateDotsFrame: false)
+        }
+    }
+    @IBInspectable var normalInnerDotColor: UIColor = UIColor.blackColor() {
+        didSet {
+            setLockViewNeedUpdate(needRecalculateDotsFrame: false)
+        }
+    }
+    @IBInspectable var highlightedInnerDotColor: UIColor = HUIPatternLockView.defaultColor {
+        didSet {
+            setLockViewNeedUpdate(needRecalculateDotsFrame: false)
+        }
+    }
+    @IBInspectable var innerDotRadius: CGFloat = 15.0 {
+        didSet {
+            setLockViewNeedUpdate(needRecalculateDotsFrame: false)
+        }
+    }
     @IBInspectable var normalDotImage: UIImage? = nil {
         didSet {
             setLockViewNeedUpdate(needRecalculateDotsFrame: false)

            CGContextDrawPath(context, .Stroke)
        }
        
        //draw normal dot images
        if let image = normalDotImage {
            for dot in normalDots {
                image.drawInRect(dot.frame)
            }
        }
        

    }
    
    //MARK: Appearance Related Properties
    @IBInspectable var lineColor: UIColor = HUIPatternLockView.defaultColor {
        didSet {
            setLockViewNeedUpdate(needRecalculateDotsFrame: false)
        }
