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

Kak*_*arz 8 iphone drag-and-drop uitableview swift ios11

有谁知道为什么苹果在桌面视图采用拖放的例子不适用于iPhone?

重现步骤:

  1. https://developer.apple.com/documentation/uikit/drag_and_drop/adopting_drag_and_drop_in_a_table_view下载代码
  2. 打开项目并将部署目标 - >设备更改为通用.
  3. 在iPhone(模拟器)上运行应用程序.
  4. 尝试拖动一些单元格.

拖放功能不起作用,但其行为应与iPad设备上的行为相同.甚至功能

func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem]
Run Code Online (Sandbox Code Playgroud)

不叫.

组态:

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

小智 16

UITableView有一个UICollectionView实例属性.

Xcode的文档:

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

TableViewController.swift中,添加

dragInteractionEnabled: Bool

into tableView.dragInteractionEnabled = true(我已经在它之前添加它viewDidLoad()并且dragDelegate设置好了,它似乎工作正常).