         case self.bottomTableView:
             let open = self.bottomOpenYOffset
             guard point.y < open else {
+                self.isOpen = true
                 return
             }
 

    open override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        switch keyPath ?? "" {
        case "contentSize":
            self.resetBottomInset()
        default:
            break
        }


    public func openBottom() {
        self.bottomTableView.setContentOffset(CGPoint(x: 0, y: self.bottomOpenYOffset), animated: true)
        self.isOpen = true
    }
}

extension LayeredTableViewController: UIScrollViewDelegate {
    public func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
        self.move(point: &targetContentOffset.pointee, toOutsideOfShowingTransitionRangeFor: scrollView)
    }
