Drag item

ทำให้ลากได้ก่อน

เริ่มจากการบอก TableView ก่อนว่าฉัน (TodoListViewController) เป็น dragDelegate และ enable ให้ drag ได้

override func viewDidLoad() {
    super.viewDidLoad()
    todo.add(item: TodoItem(title: "Download XCode", isDone: true))
    todo.add(item: TodoItem(title: "Buy milk"))
    todo.add(item: TodoItem(title: "Learning Swift", isDone: false))
    
    tableView?.dragDelegate = self
    tableView?.dragInteractionEnabled = true
}

จากนั้น add conform UITableViewDragDelegate

UITableViewDragDelegate

UITableViewDragDelegate จะบังคับ ให้สร้าง function ก็ให้เราใส่ตามนี้

func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] {
    [UIDragItem(itemProvider: NSItemProvider())]
}

เนื่องจากเราจะทำ drag and drop ของในแอปเราเท่านั้น เราจึงใช้ itemProvider แบบนี้ได้

จากนั้นให้เราลองรันแอปของเรา จะพบว่า เราสามารถลากได้แล้ว

Last updated