ios - 如何让 iOS 11 拖放在 iPhone 上工作

标签 ios drag-and-drop ios11

我一直在试用新的 iOS 11 拖放功能。很棒,但只能在 iPad 上使用。 Apple 声称它也适用于 iPhone,但我无法在 iPhone 上使用它? Apple 的说法是错误的,还是我做错了什么?

最佳答案

您正在某个 View 上安装 UIDragInteraction 对象,对吗?好吧,默认情况下,拖动交互的 isEnabled 属性在 iPhone 上是 false(根据 isEnabledByDefault 类属性的设备相关值).

因此,要在 iPhone 上启用拖放功能,只需在创建拖动交互时将拖动交互的 isEnabled 设置为 true 即可:

override func viewDidLoad() {
    super.viewDidLoad()

    let dragger = UIDragInteraction(delegate: self)
    self.dragView.addInteraction(dragger)
    dragger.isEnabled = true // for iPhone: presto, we've got drag and drop!
}

对于 TableView 或 Collection View ,正如其他答案所指出的,您需要将其 dragInteractionEnabled 设置为 true,因为它也是 false 在 iPhone 上默认。

关于ios - 如何让 iOS 11 拖放在 iPhone 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46392359/

相关文章:

ios - UISearchBarSearchField BackgroundView 颜色

javascript - React/AntDesign 如何使行可拖动? (表格拖动排序)

ios - 如何在 iOS 11 中正确设置 UINavigationBar 高度

ios - 重用时 NSMutableArray removeAllObjects 与 new

ios - [椰子] :Resource Bundle not accessbile

javascript - Canvas 形状的控制点

javascript - 使用可通过 rowspan 和 colspan 排序的 Jquery 在 2 个表之间拖放

swift - ARKit – 使用 CALayer 在 SCNNode 中加载 GIF 图像无法正确渲染

ios - MvvmCross:从外部绑定(bind)MvxTableViewCell

ios - 如何从 url 获取 objectID?