     
     func rowHeight(in pickerView: SDPickerView) -> CGFloat
     
+    func viewToPresent(in pickerView: SDPickerView, reusing view: UIView?) -> UIView
+    
     func pickerView(_ pickerView: SDPickerView, titleForRow row: Int) -> String?
     
     func pickerView(_ pickerView: SDPickerView, attributedTitleForRow row: Int) -> NSAttributedString?

        }
    }
    
    private func selectionDidChanged() {
        
        let reusing = self.contentView.subviews.first
        reusing?.removeFromSuperview()
        
        if 0..<numberOfRows ~= selectedRow, let view = self.delegate?.pickerView(self, viewForRow: selectedRow, reusing: reusing) {
            
            self.contentView.addSubview(view)
            view.translatesAutoresizingMaskIntoConstraints = false

    private let contentView = UIView()
    private let button = UIButton(type: .custom)
    
    open weak var delegate: SDPickerViewDelegate? {
        didSet {
            self.reloadData()
        }
    }
    
    open weak var dataSource: SDPickerViewDataSource? {
        didSet {
            self.reloadData()
        }
    }
    
