             for dot in highlightedDots {
                 image.drawInRect(dot.frame)
             }
-        }
+        } else {
+            CGContextSetFillColorWithColor(context, highlightedInnerDotColor.CGColor)
+            CGContextSetStrokeColorWithColor(context, highlightedOuterCircleColor.CGColor)
+            for dot in highlightedDots {
+                drawDot(dot)
+            }
+        }
+    }
+
+    private func drawDot(dot: HUIPatternLockViewDot) {
+        let context = UIGraphicsGetCurrentContext()
+        let x = CGRectGetMidX(dot.frame)
+        let y = CGRectGetMidY(dot.frame)
+        CGContextMoveToPoint(context, x, y)
+        CGContextAddArc(context, x, y, innerDotRadius, 0, CGFloat(2*M_PI), 1)
+        CGContextFillPath(context)
+        CGContextStrokeEllipseInRect(context, dot.frame)
     }
 }
 

            setLockViewNeedUpdate(needRecalculateDotsFrame: false)
        }
    }
    @IBInspectable var normalDotImage: UIImage? = nil {
        didSet {
            setLockViewNeedUpdate(needRecalculateDotsFrame: false)

            CGContextDrawPath(context, .Stroke)
        }
        

        //draw normal dot images
        CGContextSetLineWidth(context, 1)

        if let image = normalDotImage {
            for dot in normalDots {
                image.drawInRect(dot.frame)
            }
        } else {
            CGContextSetFillColorWithColor(context, normalInnerDotColor.CGColor)
            CGContextSetStrokeColorWithColor(context, normalOuterCircleColor.CGColor)
            for dot in normalDots {
                drawDot(dot)
            }
        }
        
