         layer.insertSublayer(backgroundLayer, at: 0)
     }
     
+    open override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
+        super.touchesEnded(touches, with: event)
+        unavailableAction?()
+    }
+    
     open override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
         if let focus = focus {
             let bypassRect: CGRect = {

        }
    }
    
    @objc fileprivate func prevButtonAction(_ sender: AnyObject) {
        if let prevAction = prevAction {
            prevAction()
        } else {

    
    @IBOutlet open weak var prevButton: UIButton?
    @IBOutlet open weak var nextButton: UIButton?
    
    private(set) var availableAction: (() -> Void)? = nil
    private(set) var unavailableAction: (() -> Void)? = nil
    
    open override var backgroundColor: UIColor? {
        get {
            return fillColor
