热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何让iOS11拖放工作在iPhone上

如何解决《如何让iOS11拖放工作在iPhone上》经验,为你挑选了2个好方法。

我一直在尝试新的iOS 11拖放功能.这很棒,但它只适用于iPad.苹果声称它也适用于iPhone,但我无法在那里工作?Apple的说法是假的,还是我做错了什么?



1> matt..:

你正在某个视图上安装UIDragInteraction对象,对吗?嗯,默认情况下,拖动交互的isEnabled属性false在iPhone上(根据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!
}

类似地,对于表视图或集合视图,如另一个答案所指出的,您需要将其设置dragInteractionEnabledtrue,因为它false在iPhone上默认也是如此.



2> Imanou Petit..:

使用Swift 4和iOS 11,根据您的需要,您可以选择以下方法之一来解决您的问题.


#1.允许UITableView在iPhone上进行拖放交互

UITableView有一个叫做的财产dragInteractionEnabled.dragInteractionEnabled有以下声明:

var dragInteractionEnabled: Bool { get set }

一个布尔值,指示表视图是否支持应用之间的拖放.

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

以下代码显示了如何使用dragInteractionEnabled以允许UItableView在iPhone上进行拖放交互:

class TableViewController: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        /* ... */

        tableView.dragInteractiOnEnabled= true
    }

}

#2.允许UICollectionView在iPhone上拖放交互

UICollectionView有一个叫做的财产dragInteractionEnabled.dragInteractionEnabled有以下声明:

var dragInteractionEnabled: Bool { get set }

一个布尔值,指示集合视图是否支持应用程序之间的拖放.

此属性的默认值true在iPad和falseiPhone上.将值更改为trueiPhone可以将内容从集合视图拖到iPhone上的另一个应用程序,并从其他应用程序接收内容.

以下代码显示了如何使用dragInteractionEnabled以允许UICollectionView在iPhone上进行拖放交互:

class CollectionViewController: UICollectionViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        /* ... */

        collectionView?.dragInteractiOnEnabled= true
    }

}

#3.允许UIImageView在iPhone上拖放交互

UIDragInteraction有一个叫做的财产isEnabled.isEnabled有以下声明:

var isEnabled: Bool { get set }

一个布尔值,指定拖动交互是否响应触摸并允许参与拖动活动.

以下代码显示了如何使用isEnabled除了UIImageView在iPhone上删除交互之外还允许拖动交互:

class ViewController: UIViewController, UIDragInteractionDelegate, UIDropInteractionDelegate {

    let imageView = UIImageView()

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(imageView)
        imageView.image = UIImage(named: "MyImage")
        imageView.isUserInteractiOnEnabled= true
        imageView.cOntentMode= .scaleAspectFit
        imageView.frame = view.bounds
        imageView.autoresizingMask = [.flexibleWidth, .flexibleHeight]

        let dropInteraction = UIDropInteraction(delegate: self)
        imageView.addInteraction(dropInteraction)

        let dragInteraction = UIDragInteraction(delegate: self)
        dragInteraction.isEnabled = true
        imageView.addInteraction(dragInteraction)
    }

    /* ... */

}


推荐阅读
author-avatar
中凱kai
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有