RXSwift如何使用返回值为委托方法创建包装器

Art*_*syn 6 uitableview ios swift rx-swift

我在RXSwift中有一个委托包装器

func tableView(tableView: UITableView,movedRowAtIndexPath sourceIndexPath: NSIndexPath,toIndexRowPath destinationRowIndexPath: NSIndexPath)    
Run Code Online (Sandbox Code Playgroud)

它们看起来像

public var rx_itemRowMoved: ControlEvent<ItemMovedEvent> {
    let source: Observable<ItemMovedEvent> = rx_delegate.observe("tableView:movedRowAtIndexPath:toIndexRowPath:")
        .map { a in
            return ((a[1] as! NSIndexPath), (a[2] as! NSIndexPath))
    }

    return ControlEvent(events: source)
}
Run Code Online (Sandbox Code Playgroud)

但我有代表返回值

 func selectionViewForTableView(tableView: UITableView,destinitionCell cell:UITableViewCell,toIndexRowPath destinationRowIndexPath: NSIndexPath) -> UIView
Run Code Online (Sandbox Code Playgroud)

我如何为这个委托实现包装器?

小智 3

没有办法做到这一点。您可以直接在委托所有者中实现此方法。也可以参考CellFactory一下RxTableViewReactiveArrayDataSource。它改变了阻止的方法。