Search code examples
swiftuitableviewrx-swiftfrp

didHighlightRowAt in RxSwift


How do I implement didHighlightRowAt (UITableViewDelegate) in RxSwift? I could find most of the delegate methods but I could not find didHighlightRowAt.


Solution

  • This way?

    extension Reactive where Base: UITableView {
    
        var didHighlightRowAt: ControlEvent<IndexPath> {
            let selector = #selector(UITableViewDelegate.tableView(_:didHighlightRowAt:))
            let events = delegate
                .methodInvoked(selector)
                .filter({ ($0.last as? IndexPath) != nil })
                .map({ $0.last as! IndexPath })
            return ControlEvent(events: events)
        }
    }
    
    let observable = UITableView().rx.didHighlightRowAt.asObservable()