ios – Swift – UITableView editActionsForRowAtIndexPath在点击编辑时打开UIPresentationController

前端之家收集整理的这篇文章主要介绍了ios – Swift – UITableView editActionsForRowAtIndexPath在点击编辑时打开UIPresentationController前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
您是否有任何方式打开一个UIPresentationController,当向左滑动触发并点击编辑?
func tableView(tableView: UITableView,editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
        let delete = ....
        let edit = UITableViewRowAction(style: .Normal,title: "Edit") { action,index in
            //OPEN UIPresentationController HERE
        }
        return [delete,edit]
}

解决方法@H_404_6@
和@patchdiaz一样,我不是100%肯定你想做什么.但是,这个代码块可能足以实现您的目标:
override func tableView(tableView: UITableView,editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? {
    let edit = UITableViewRowAction(style: .Normal,index in
        // OPEN UIPresentationController HERE
        let vc = UIViewController(nibName: nil,bundle: nil)
        vc.view.frame = CGRect(x: 0,y: 0,width: 100,height: 200)
        vc.view.backgroundColor = UIColor.orangeColor()
        vc.modalPresentationStyle = .Popover

        let popover = vc.popoverPresentationController!
        let cell = tableView.cellForRowAtIndexPath(indexPath)!

        var cellAbsolutePosition = cell.superview!.convertPoint(cell.frame.origin,toView: nil)
        cellAbsolutePosition.x = cell.frame.width - 60
        popover.sourceRect = CGRect(origin: cellAbsolutePosition,size: cell.frame.size)
        popover.sourceView = tableView

        self.presentViewController(vc,animated: true,completion: nil)
    }
    return [edit]
}

它会在“编辑”按钮位置显示一个popover权限,如下所示:

猜你在找的iOS相关文章