在表视图中采用拖放功能无法在iPhone上运行

时间:2017-09-20 17:11:31

标签: iphone swift uitableview drag-and-drop ios11

有谁知道为什么在表格视图中采用拖放的Apple示例无法在iPhone上运行?

重现步骤:

  1. https://developer.apple.com/documentation/uikit/drag_and_drop/adopting_drag_and_drop_in_a_table_view
  2. 下载代码
  3. 打开项目并更改部署目标 - >设备到通用。
  4. 在iPhone(模拟器)上运行应用程序。
  5. 尝试拖动一些单元格。
  6. 拖放功能不起作用,但其行为应与iPad设备上的行为相同。甚至功能

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

    未被调用。

    配置:

    • Xcode版本9.0(9A235)
    • Apple Swift 4.0版(swiftlang-900.0.63 clang-900.0.37)
    • Simulator Version 10.0(SimulatorApp-829.6 CoreSimulator-494.13.6)

1 个答案:

答案 0 :(得分:13)

UITableView有一个dragInteractionEnabled: Bool实例属性。

Xcode的文档:

  

此属性的默认值在iPad上为true,在iPhone上为false。在iPhone上将值更改为true可以将内容从表格视图拖到iPhone上的其他应用程序,并从其他应用程序接收内容。

TableViewController.swift 中,添加

tableView.dragInteractionEnabled = true

进入viewDidLoad()(我已在dragDelegatedropDelegate设置之前添加它,它似乎工作正常。)