UITableView RowActions:不要忽略行动作?

时间:2017-12-20 17:09:43

标签: ios swift3 uikit tableview

我有一个tableview,它使用两个tableview行,一个是删除,另一个是更多。

当我点击更多按钮时,会出现一个具有一些动作的警报控制器。 我希望当点击更多按钮时会显示警报控制器,但是rowActions会自动显示在哪一行按下了更多的按钮,但是当我点击更多按钮时它会逐渐消失。

Apple mail app和whatsapp成功完成了这项工作。

我在模拟器中使用xcode 9和ios 11.1。

我使用以下代码实现了滑动操作功能:

 func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
    let conversation = fetchedResultsController.object(at: indexPath)
    let conversationId = Int(conversation.id)
    let conversationType = Int(conversation.conversation_type_id)
    let deleteTitle = getDeleteRowActionTitle(conversationId: conversationId, conversationType: conversationType)
    let moreRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.normal, title: "More", handler:{action, indexpath in
        self.moreAction(conversation: conversation, conversationId:conversationId,conversationType:conversationType,indexPath:indexpath)
    })
    moreRowAction.backgroundColor = UIColor.green

    let deleteRowAction = UITableViewRowAction(style: UITableViewRowActionStyle.destructive, title: deleteTitle, handler:{action, indexPath  in

    })
    return [deleteRowAction, moreRowAction]
}
 func moreAction(conversation:Nd_conversation,conversationId: Int,conversationType:Int,indexPath:IndexPath){

    let muteTitle = notify ? "Mute" : "Unmute"
    let moreActionSheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
    let action1 = UIAlertAction(title: muteTitle, style: .default, handler: {(action) -> Void in

    })
    moreActionSheet.addAction(action1)
    let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: {(action) -> Void in })
    moreActionSheet.addAction(cancelAction)
    self.present(moreActionSheet, animated: true, completion: nil)
}

这适用于ios 10.3,但不适用于ios 11。

0 个答案:

没有答案