Tag: 拖放

iOS 11中拖放功能的简单示例

我们简要地看到了苹果几个月前在其WWDC中引入的拖放功能。 今天,我们将通过示例代码对功能进行更深入的了解。 我们将看到如何在视图和表视图中实现拖放功能。 创建一个新项目并添加2个选项View和TableView。 当用户选择“自定义视图”选项时,导航至CustomViewController并设计如下所示的UI。 在此屏幕中,我们将执行从一个imageView到另一个imageView的拖动,以及从一个textView文本到另一个textView的拖动。 首先,为imageView启用用户交互。 然后,我们需要使用DragInteraction委托为ImageView设置一个Drag交互。 仅在委托中,我们将指定要拖动的DragItem。 dragImageView.isUserInteractionEnabled = true dropImageView.isUserInteractionEnabled = true dragImageView.addInteraction(UIDragInteraction(delegate:self)) dragTextView.addInteraction(UIDragInteraction(delegate:self)) 准备好拖动对象后,将调用以下委托方法。 func dragInteraction(_交互:UIDragInteraction,itemsForBeginning会话:UIDragSession)-> [UIDragItem] 我们将拖动要拖动的imageview和textview,因此代码实现如下。 func dragInteraction(_交互:UIDragInteraction,itemsForBeginning会话:UIDragSession)-> [UIDragItem] {如果让textValue = interact.view为? UITextView {让provider = NSItemProvider(object:textValue.text!as NSString)let item = UIDragItem(itemProvider:provider)返回[item]}如果让imageView = interact.view为? UIImageView {保护let image = imageView.image else {return []} let provider = NSItemProvider(object:image)let item = UIDragItem(itemProvider:provider)return [item]} return […]

快速的文字游戏,第二部分

在本文的第一部分中,我介绍了一些基本的代码来生成UITableView,其中的重要内容是拖放简短论文的主要内容。 当然,如果没有可编辑的表格视图,它的用途将非常有限,所以我认为我要做第二部分。 UITableView的最终目标应像这样,可以内联编辑,插入和删除条目。 首先,我们需要设置一个自定义UITableCell类,其中包含一个UITextField,代码如下所示。 类myTableViewCell:UITableViewCell,UITextFieldDelegate { 让标签:UITextField var listItems:myItem? { didSet { label.text = listItems!.text } } 所需的init(coder aDecoder:NSCoder){ fatalError(“ init(coder :)尚未实现”) } 覆盖init(样式:UITableViewCellStyle,复用标识符:字符串?){ 标签= UITextField(框架:CGRect.null) label.textColor = UIColor.black label.font = UIFont.systemFont(ofSize:16) super.init(样式:样式,reuseIdentifier:reuseIdentifier) label.delegate =自我 label.contentVerticalAlignment = UIControlContentVerticalAlignment.center addSubview(label) } 让leftMarginForLabel:CGFloat = 16.0 覆盖func layoutSubviews(){ super.layoutSubviews() label.frame = CGRect(x:leftMarginForLabel,y:0,width:bounds.size.width — leftMarginForLabel,高度:bounds.size.height) } func textFieldShouldReturn(_ textField:UITextField)-> […]

快速镶嵌机

在本系列文章的后续部分,我将继续研究新的拖放方法,我将另一个简单的游戏组合在一起,该游戏构建了一个空投文件的马赛克,使您有机会进行重新组合并将其重组为讨价还价。 [摇动iPad扰乱图像]。 为此,您需要先编辑info.plist,然后添加应用所需的代码以重新协调针对该图像的图像。 UTExportedTypeDeclarations UTTypeConformsTo public.data UTTypeIdentifier ch.cqd.mosaicMaker UTTypeTagSpecification public.filename-extension mosaicMaker 这就是说,当您获得以.mosaicMaker结尾的文档时,您需要打开此应用程序。 当然,这意味着我需要更改要空投的jpg的扩展名,对不起,其中最纯粹的人不是。 添加的内容是,我需要将此代码放入应用程序委托中,以对传入的文件进行处理。是的,将扩展名更改回jpg。 显然,如果您将其发送给png,它将无法正常工作! func application(_ app:UIApplication,打开url:URL,选项:[UIApplicationOpenURLOptionsKey:Any] = [:])-> Bool { var destinationPath:URL! 让documentsDirectoryURL =试试! FileManager()。url(用于:.documentDirectory,位于:.userDomainMask中,适当用于:nil,创建:true) 如果url.pathExtension ==“ mosaicMaker” { 让documentsDirectoryURL =试试! FileManager()。url(用于:.documentDirectory,位于:.userDomainMask中,适当用于:nil,创建:true) 做{ destinationPath = documentsDirectoryURL.appendingPathComponent(“ mosaic.jpg”) 尝试FileManager.default.moveItem(at:url,to:destinationPath) } { 打印(错误) } } 让nc = NotificationCenter.default nc.post(name:Notification.Name(rawValue:” showImage”), 对象:无,userInfo:无) 返回真 } 除此之外,它还使用iOS标准通知中心来告诉ViewController它已加载了需要显示的图像。 在View […]

接口Fluidas —拖放

Cibele Paulino e Mateus Rodrigues 拖放对象时,必须在对象上方添加“对象”,然后再在对象之间添加对象。 您可以在多人触摸界面上使用多种触摸屏,也可以在不同的界面上进行选择。 在iPad上可以使用的基本功能,在iPhone上可以使用“可转换的”的功能。 iPhone上的Apesar dessaslimitações,aindahávariasaçõesde Drag和Drop。 在OS上的入门级教程和教程,以及iOS的拖放操作。 没有教程,没有链接,请联系我们。 API的基本要求:Fazer com que ob os objetos sejam arrastados,obrar uma proposta de arrastar e,enfim,执行queda。 Neste教程,iPad的简单用法,uma的图像和文本的构成,destinados esbesjet接收器。 表演或表演时要注意的事项UIDropSession,请确定要删除的UIDropSession ,然后再重新命名。 Seleçãode Texto Personalizada 一个Utilsando UIDragInteraction的实现,它具有以下功能:视图,文本限制:Nàopodemos arrastar um trecho de um texto。 参数实现的可重复性,UITextDragDelegate的实用性 ,TextView的专有激光雷达。 Primeiramente,precisamos的fazer算法修改了ViewDidLoad ,删除了DragInteraction做的nosso dragTextView并删除了textDragDelegate的noController的ViewController。 可以在视图库中查看或加载viewDidLoad() : Podemostambém替代品一个Preview de um TextView工具和项itemsForDrag和dragPreviewForLiftingItem itemsForDrag UITextDragDelegate和UIDragInteractionDelegate的等效功能,可以在TextView中使用,也可以在TextView中使用。 dragPreviewForLiftingItem […]

使用拖放API构建类似Trello的iOS应用

拖放是用户交互,当我们要构建一个用户可以在屏幕上移动数据的应用程序时,它很自然地起作用。 Trello,Jira等应用程序正在大量使用它在板之间移动数据。 在iOS 11 SDK发行之前通过拖放交互构建iOS应用程序并不是一个简单的过程。 根据我以前的经验,我们必须手动执行一些繁琐的任务,例如: 将长按手势识别器添加到我们要拖动的视图中。 用户开始拖动时创建快照视图。 当用户在屏幕上拖动快照时,处理所拖动快照坐标的更新。 当用户将项目放到坐标位置时进行检测和处理。 同步放置的数据目标和拖动的数据源,然后分别更新UI。 即使完成所有这些任务,也很难使它顺利运行。 值得庆幸的是,随着iOS 11的发布,Apple终于在Cocoa Touch SDK中提供了拖放API。 自从iOS 12是移动操作系统的最新版本以来,iOS 11是iPad以来最大的OS更新,这是史蒂夫·乔布斯(Steve Jobs)在2010年1月首次推出该设备以来,它是第三台介于PC和智能手机之间的设备。 它支持多任务处理,其中多个应用程序同时在“分屏”和“滑行”界面上运行。 macOS的Dock也是首次引入,它允许用户自定义自己喜欢的应用程序和最近使用的应用程序。 拖放API是在应用之间进行通信的最佳方式。 以下是几个主要功能: 在iOS上支持系统范围的拖放。 使用拆分视图或拖动到Dock上的应用程序图标,可在应用程序之间移动文本,图像和文件。 拖放视图时,API会自动处理所有动画。 开发人员只需要实现协议即可获得更大的灵活性和定制性。 支持通过拖动一个项目并点击其他项目来拖动多个项目。 拖放式API 根据Apple文档页面,以下是拖放API概述的简要摘要: 拖放功能既可以在单个应用程序中运行,也可以在多个应用程序之间运行。 在iPhone环境中,拖放操作仅在单个应用程序中有效。 在多应用程序环境中,用户开始拖动视图的应用程序将成为源应用程序。 目标应用是用户将视图放置到的应用。 当用户正在执行拖放手势时,系统会启动“ Drag Activity 。 系统还管理用户通过Drag Session拖动的对象的状态。 可以将UIView配置为使用实现UIDragDelegate和UIDropDelegate对象来支持拖放。 UITableView和UICollectionView都具有其自己单独的视图属性和协议,以处理单元格之间的拖放。 该API提供了自定义拖放行为的灵活性。 该系统还使用UTI (Uniform Type Identifier)安全,自动地处理应用程序之间的数据移动和加载,以处理文本,图像,联系人和其他许多内容。 我们将建立什么 在本教程中,我们将使用拖放API构建具有以下基本功能的类似Trello的应用程序: 创建一个木板。 将项目添加到板上。 使用拖放在木板之间移动项目。 为了成功创建这些功能,以下是我们将在项目中实现的任务: 应用流程图。 […]