         }
     }
     
-    public override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
+    open override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
         resetDotsState()
         setLockViewNeedsUpdate(needRelayoutDots: false)
     }

import UIKit
import Foundation

@IBDesignable public class HUIPatternLockView : UIView {
    
    public static let defaultLineColor = UIColor(red: 248.00/255.00, green: 200.00/255.00
        , blue: 79.00/255.00, alpha: 1.0)

        setLockViewNeedsUpdate(needRelayoutDots: false)
    }
    
    open override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
        guard let point = touches.first?.location(in: self) else {
            return
        }
