向 iOS 应用程序添加拖放组件

2023-11-27

如果这看起来很模糊,我深表歉意,但我不知道还能怎么说。

我正在尝试构建一个 iPad 应用程序,让用户可以使用他们需要的工具填充工作区。我需要一个让用户将组件拖放到应用程序界面中的示例。例如,如果我有一个应用程序,用户可以制作表单,并且我希望用户能够拖动文本框、列表、单选按钮等来制作表单,我将如何去做呢?我正在使用的项目将位于弹出菜单中,以便用户向上拖动,然后将在该弹出菜单中看到我需要的所有项目。我只是不确定如何让它们从弹出窗口拖动到画布,并且能够重用相同的项目(因此示例中有 3 或 4 个文本框)。这可能吗?谁能指导我有关此的教程?我已经搜索过但找不到任何东西。

如果这是错误的或者是一个愚蠢的任务,请让我知道该怎么做,这是我第一次在这里发帖。

谢谢


已经有很多答案解释了这个问题。 基本上你可以制作自定义 UIView,触摸后它将跟随触摸移动。 像这样的东西:

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    _originalPosition = self.view.center;
    _touchOffset = CGPointMake(self.view.center.x-position.x,self.view.center.y-position.y);
}

-(void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{        
    UITouch *touch = [touches anyObject];
    CGPoint position = [touch locationInView: self.view.superview];

    [UIView animateWithDuration:.001
                          delay:0.0
                        options:UIViewAnimationOptionCurveEaseInOut
                     animations:^ {

                         self.view.center = CGPointMake(position.x+_touchOffset.x, position.y+_touchOffset.y);
                     }
                     completion:^(BOOL finished) {}];
}

-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    CGPoint positionInView = [touch locationInView:self.view];
    CGPoint newPosition;
    if (CGRectContainsPoint(_desiredView.frame, positionInView)) {
        newPosition = positionInView;
        // _desiredView is view where the user can drag the view
    } else {
        newPosition = _originalPosition;
        // its outside the desired view so lets move the view back to start position
    }

    [UIView animateWithDuration:0.4
                          delay:0.0
                        options:UIViewAnimationOptionCurveEaseInOut
                     animations:^ {
                         self.view.center = newPosition
                         // to 
                     }
                     completion:^(BOOL finished) {}];

}

类似问题

iPhone App:在UIView中拖放图像的实现

iOS 中的基本拖放

iPhone 拖/放

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向 iOS 应用程序添加拖放组件 的相关文章

  • 在 iOS 中管理和解除多个视图控制器

    我是一名 iPhone 新手程序员 在开发我的第一个游戏 应用程序时 我为自己提出了一个问题 创造了一个问题 我对此进行了研究 并认为我已经看到了答案 但我不明白如何使它们适用于我的应用程序 我有一个游戏 有几个视图控制器 欢迎 玩 高分
  • iPhone,使用 isKindOfClass 是否被认为是不好的做法?

    例如 如果有一个 处理所有 类型的方法 if obj isKindOfClass class1 else if obj isKindOfClass class2 etc 这是不好的做法吗 是否有更简洁的替代方案或更好的方法来构建代码 在运行
  • Swift 数组设置索引值不起作用

    我有一个方法 下面的内容 其中queue2只是一个 Int 我打印了很多东西 看看一切是否都正常 public func cool item Int println item println back queue2 insert item
  • iOS Swift 检测键盘事件

    我能以某种方式检测来自 iOS 键盘的事件吗 我想检测此类事件UIViewController哪个没有UITextField或任何此类物体 我只有四个圆圈UIView我想在按下键盘上的按钮时将它们涂成不同的颜色 您没有任何对象可以从键盘获取
  • 在界面生成器/故事板中设置 UIButton 图像

    我有一个视图控制器 我在故事板中添加了一个圆形矩形按钮 该应用程序运行良好 我还使用故事板将按钮连接到 segue 我正在尝试为此按钮设置一个自定义图像以用于其开和关状态 我如何访问此按钮并设置其属性 在本例中为开和关图像 这是一个屏幕截图
  • 使用 Objective-C 在 iPhone 应用程序中显示或隐藏 UIButton

    我在用UITextView编辑文本 我想用两个UIButtons编辑并保存 最初我想显示编辑UIButton 当用户单击编辑时我想显示保存UIButton 当内容成功保存后 我不想再显示保存按钮 我是一名 C 编码员 在 C 中我曾经这样做
  • 使用 Push Transition 效果更改 RootViewcontroller

    在我的iOS应用程序中 我需要更改应用程序之间窗口的rootviewController 因此 当我动态更改我的rootviewcontroller时 它会在更改之前轻拂视图 但我想要的是在更改rootviewcontroller时提供平滑
  • iOS App布局错误,调用状态栏

    在主动通话和应用程序布局期间面临状态栏问题 我正在使用自动布局 当我运行应用程序 然后开始通话时 一切正常 UI 会随着状态栏的更改而正确缩放 但是 如果我首先开始通话 然后运行应用程序 应用程序屏幕会移动到底部 20pt 就像它们对新状态
  • 自动布局和ios5

    我正在使用故事板 我已经使用了自动布局 但它不适用于 ios5 并且会崩溃 所以我想删除它 但是 如何取消选中自动布局 但如果我取消选中自动布局 我如何为 iPhone 4 和 5 设置屏幕 Regards 您可以在 IB 中禁用自动布局
  • WebGL iOS 渲染为浮点纹理

    我正在尝试在 iOS Safari 上的 WebGL 中渲染浮点纹理 而不是在本机应用程序中 我已经设法让 iOS 读取手动 例如从 JavaScript 创建的浮点纹理 但是当我创建浮点类型的帧缓冲区并使用 GPU 渲染到其中时 它不起作
  • 在 Interface Builder 中的资产目录上使用图像

    是否可以直接在界面生成器上使用添加到资产目录中的图像 这是怎么做到的 在 UIImageView 属性上 我看不到任何引用资产目录上任何图像的选项 Import the images into the xcassets folder 单击右
  • UIBezierPath 的起始和结束角度?

    我在 iOS 中使用如下代码编写了半圆UI贝塞尔路径 and CAShape层 clockWiseLayer CAShapeLayer alloc init CGFloat startAngle M PI 2 CGFloat endAngl
  • 从 RemoteIO 保存音频的示例?

    我进行了搜索 但没有找到任何从 RemoteIO 音频单元保存音频的好示例或教程 我的设置 使用 MusicPlayer API 我有几个 AUSamplers gt MixerUnit gt RemoteIO 音频播放效果很好 我想添加将
  • 使用反射的属性类型或类

    我想知道是否可以确定对象属性的类或原始类型 获取所有属性名称和值非常容易 所以答案 https stackoverflow com questions 2299841 objective c introspection reflection
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • Cognito/IAM 策略和 S3 获取对象

    我正在尝试将 S3 和 Cognito 集成到我的 iOS 应用程序中 但到目前为止尚未成功 我相信该错误与我针对 Auth 和 Unauth 用户的 IAM 策略有关 所以这是我的政策 Version 2012 10 17 Stateme
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 播放(非库)Apple Music 内容 - 请求失败

    我正在尝试使用以下代码播放专辑 let predicate MPMediaPropertyPredicate value 1459938538 forProperty MPMediaItemPropertyAlbumPersistentID
  • iOS 对 Google 云消息传递的支持

    我在谷歌的开发者控制台中看到 GCM 允许为 iOS 生成 API 密钥 我在网上搜索了有关如何在 iOS 应用程序中通过 GCM 实现推送通知的任何类型的文档 但没有找到答案 真的有可能在 iOS 应用程序中使用 GCM 实现推送通知 j
  • 下标:使用字符串枚举访问我的字典值

    我想做类似的事情 使用字符串枚举访问我的字典值 我试图重载字典的下标但没有成功 访问字典 let district address JsonKeys district 其中 JsonKeys 是 enum JsonKeys String c

随机推荐

  • 拖动子元素时会触发父元素的“dragleave”

    Overview 我有以下 HTML 结构 并附上了dragenter and dragleave事件到 div 元素 div div div div class text this is some text div div class t
  • 从多线程使用 QSqlQuery

    我有很多 C 11 线程正在运行 它们有时都需要数据库访问 主要是我初始化数据库连接并打开数据库 Qt 文档说查询不是线程安全的 因此我使用全局互斥体 直到线程内存在 QSqlQuery 这可行 但是否保证有效 或者我有时会遇到问题 看看文
  • 如何在 Dart 代码中从 REST api 解码 utf-8?

    我正在尝试使用 REST API 从 Wordpress 站点创建新闻报道应用程序 但它是用 UTF 8 编码的 我是 Dart 新手 我所知道的是我可以通过字符数组而不是给出字符串 作为输入 来解码 Utf 8 那么如何为我的应用程序解码
  • 使用 javascript/jQuery 获取父 div 内的鼠标位置[重复]

    这个问题在这里已经有答案了 可能的重复 jQuery 获取元素内的鼠标位置 我有一个页面 在该页面内有一个 div 如果用户在该 div 内单击 它将存储他们在该 div 内单击的位置的 X Y 坐标 例如 如果我单击 div 的左上角 无
  • 未捕获错误:NOT_FOUND_ERR:appendChild 调用的 DOM 异常 8 [重复]

    这个问题在这里已经有答案了 可能的重复 javascript addChild 不起作用 错误发生在该片段的最后一行 var anchor a href imagename a var specialdiv document getElem
  • Elasticsearch 在 java api 中的内部命中

    我正在尝试使用 Java API 通过 elasticsearch 实现内部命中 但我找不到太多关于它的文档或其他人正在使用的示例 我的 JSON 搜索工作原理如下 query filtered query match all filter
  • 从数据库读取 BLOB(PDF 内容)并编辑和输出 PDF 编辑文件,无需创建物理文件

    我正在使用 Oracle 数据库并将 PDF 内容存储在 BLOB 字段中 我想读取BLOB内容 然后编辑并输出编辑后的内容 我需要做的编辑是 在 BLOB 内容上方添加标题 在每个页面上添加水印 在每个页面上添加页脚 然后我需要输出文件
  • HttpWebRequests 后续调用失败

    我知道这是一个模糊的问题 特别是因为我没有提供任何代码 但我正在开发一个 Net 2 0 应用程序 并且我们有一个 WebRequest 将数据发布到内部构建的 API 奇怪的事情发生在我们的第三个 并且总是第三个 后续请求上 该请求在请求
  • 伴生对象无法访问类上的私有变量

    来自 Scala REPL 的相当奇怪的行为 尽管以下编译没有问题 class CompanionObjectTest private val x 3 object CompanionObjectTest def testMethod y
  • 找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

    签署第三方程序集并将其添加到 GAC 后 我收到以下错误 程序集绑定程序日志条目也显示这个错误 它说不匹配的程序集不确定如何错误 因为我删除了所有 obj 和 bin 折叠并批量构建了应用程序 重新导入了 dll Assembly mana
  • Socket.IO 客户端 .js 文件位于哪里?

    我正在尝试让 socket io 节点库 工作 我的服务器端 js 正在工作 并且它正在监听 socket io 网站简单说明 这很好 但是 我要导入什么 JS 文件 我进入了node modules目录 在那里我通过npm安装了soc
  • 有没有办法在node.js的对象文字中指定ES6生成器方法?

    我似乎无法创建一个生成器方法作为对象文字 这是我的工作源代码 function getRecords data for var i 0 i lt data length i yield data i var records getRecor
  • 在 Python 中将重复项保留在列表中

    我知道这可能是一个简单的答案 但我无法弄清楚 Python 中将重复项保留在列表中的最佳方法是什么 x 1 2 2 2 3 4 5 6 6 7 输出应该是 2 6 我找到了这个链接 在 python 中查找 并保留 子列表的重复项 但我对
  • Scala 类无法覆盖扩展 java.util.comparator 的 Java 接口中的比较方法

    我目前正在开发一个 jEdit 插件的端口 以在 Scala 中编写所有代码 然而 我在某个时候被迫实现我自己的比较器 我的简化代码如下 class compare extends MiscUtilities Compare def com
  • StringBuilder 与 XmlTextWriter

    我试图从提供 Xml 内容的自定义 HttpHandler 中获得尽可能多的性能 我想知道哪个性能更好 使用 XmlTextWriter 类或临时 StringBuilder 操作 例如 StringBuilder sb new Strin
  • 具有自定义项目的 UIMenuController 不适用于 UICollectionview

    当长按 UICollectionViewCell 时 我添加了自定义菜单控制器 self becomeFirstResponder UIMenuItem menuItem UIMenuItem alloc initWithTitle Cus
  • 根据类为 DOM 元素添加事件监听器

    我有一张桌子 其中每个tr and td只有课程 我在选择课程时遇到问题td具有我需要的类的元素 HTML table tr class data td class cell 1 td td class cell2 td tr tr cla
  • 如何将 OrderBy 表达式数组传递给方法?

    我正在尝试增强我的存储库 以便它负责订购 我已经应用了来自的答案这个问题就存储库而言 我很确定它已经完成了 我遇到的问题是我不确定现在如何将数组传递给存储库中的方法 编译器一直对我大喊关于委托的事 在上面的链接问题中 作者本质上是在做我想做
  • 如何在 r 中绘制 3D 函数? [复制]

    这个问题在这里已经有答案了 我有一个 3D 函数 比方说 De Jong 函数 fdejong lt function x y return x 2 y 2 我怎样才能以3D方式绘制它的情节 我想实现与维基百科类似的效果 尝试这个 fdej
  • 向 iOS 应用程序添加拖放组件

    如果这看起来很模糊 我深表歉意 但我不知道还能怎么说 我正在尝试构建一个 iPad 应用程序 让用户可以使用他们需要的工具填充工作区 我需要一个让用户将组件拖放到应用程序界面中的示例 例如 如果我有一个应用程序 用户可以制作表单 并且我希望