如何允许在某些区域拖动 UIView (PanGesture..)

2024-01-23

我需要通过拖动 UIViewPanGestureRecognizer(我知道该怎么做),但我不知道如何在限制下做到这一点。需要从顶部进行一些填充,并且如果与设备的四个边(左、右、顶部(这里是填充)和底部)之一发生碰撞,请停止拖动,并且不能像顶部那样超过 - 或 1px 填充, 任何。 :)

我尝试过这个:https://github.com/andreamazz/UIView-draggable https://github.com/andreamazz/UIView-draggable但如果我通过 cagingArea 设置限制区域,iPad (Air) 就会出现滞后。而且移动不顺畅,我认为原生的PanGestureRecognizer是最好的,只需要限制区域,你知道我该怎么做吗? :)

我正在用 Swift 写作。并且还发现了一些相关主题,比如这个 ->使用 UIPanGestureRecognizer 将 UIView 拖动到有限区域内 https://stackoverflow.com/questions/28938135/use-uipangesturerecognizer-to-drag-uiview-inside-limited-area但我不知道什么insideDraggableArea正在做?..

非常感谢各位程序员!


我在项目中遇到同样的问题, 尝试这个,

1) 初始化平移手势

let panRec = UIPanGestureRecognizer()

2) 将 PanGesture 添加到您的 UIView

override func viewDidLoad() {
....
....
panRec.addTarget(self, action: "draggedView:")
yourview.addGestureRecognizer(panRec)
yourview.userInteractionEnabled = true
....
....
}

3)设置对draggedView函数的限制

func draggedView(sender:UIPanGestureRecognizer){
        println("panning")

        var translation = sender.translationInView(self.view)

        println("the translation x:\(translation.x) & y:\(translation.y)")

        //sender.view.
        var tmp=sender.view?.center.x  //x translation
        var tmp1=sender.view?.center.y //y translation

        //set limitation for x and y origin
        if(translation.x <= 100 && translation.y <= 50 )
         {
        sender.view?.center=CGPointMake(tmp!+translation.x, tmp1!+translation.y)
         sender.setTranslation(CGPointZero, inView: self.view)
         }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何允许在某些区域拖动 UIView (PanGesture..) 的相关文章

  • Swift 数组设置索引值不起作用

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

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

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

    我有一个初始化 webView 的布尔条件 并在 webViewDidFinishLoad 中加载另一个委托 以便在完成完成后触发 但是 由于布尔值在条件 webViewDidFinishLoad 之前返回 因此页面永远不会完全加载 如何确
  • iOS 解决方案仅当图像尚未使用 SDWebImage 缓存在内存中时才加载带有动画的图像

    我已经为这个问题苦苦挣扎了几天 以前我使用 AFNetworking 类别来加载和缓存图像 但它的回调中没有提供缓存类型 所以我过去常常在每个控制器中跟踪哪些图像已经加载 我浏览了 SDWebImage 它提供了我正在寻找的东西 SDIma
  • iOS 开发: [[self navigationController] viewControllers]; 有哪些原因?会返回零吗?

    以下语句返回零 NSArray viewControllersInNavStack self navigationController viewControllers 这个语句是在导航堆栈中大约四层深度的视图控制器中调用的 所以我不明白它如
  • 在 iOS 中录制音频并永久保存

    我制作了 2 个 iPhone 应用程序 可以录制音频并将其保存到文件中并再次播放 其中之一使用 AVAudiorecorder 和 AVAudioplayer 第二个是苹果的在这里说话 http developer apple com l
  • 在 Interface Builder 中的资产目录上使用图像

    是否可以直接在界面生成器上使用添加到资产目录中的图像 这是怎么做到的 在 UIImageView 属性上 我看不到任何引用资产目录上任何图像的选项 Import the images into the xcassets folder 单击右
  • Swift 对异步编程有什么语言级别的支持(如果有)?

    当应用程序必须通过不可预测的网络 例如智能手机应用程序 进行通信时 异步编程对于响应式用户界面来说是必须的 用户界面必须保持响应 同时等待结果从互联网上某处的服务器返回 在大多数语言中 应用程序程序员必须实现自己的状态机 可能使用闭包 来响
  • iOS 内存警告

    我正在尝试使用从 Parse 数据库下载的图像填充集合视图 但我收到内存警告 然后偶尔崩溃 有谁知道其他应用程序如何设法呈现这么多图像而不崩溃 有人可以告诉我如何优化我已有的东西吗 这是所有相关代码 https gist github co
  • XCode:代码覆盖率数据生成失败

    当我尝试运行单元测试时 我在 Objective C 项目中遇到了这个可怕的问题 我已经尝试了以下所有方法 根据各种 SOF 帖子 清除派生数据 删除 Library 中的所有模拟器设置 重新启动 XCode 重新启动MBP 多次重置模拟器
  • 从 Core Data、iOS 获取最后插入的项目

    有没有办法获取核心数据数据库中最后插入的项目 这将返回最后插入的对象 setFetchLimit 1 和 setFetchOffset 所有条目数 1
  • 如何将十六进制数组转换为 UIImage?

    有几个与使用 P25mi 动态打印图像相关的未解答问题 没有一个得到公认的答案 下面有几个链接 如何将图像转换为位图代码以便在 iPhone 中进行蓝牙打印 https stackoverflow com questions 1383828
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • 如果 NSExtensionActivationRule 设置为仅音频,则共享扩展不会出现在有功能的应用程序中

    我正在尝试创建一个共享扩展 用户可以从任何有能力的应用程序上传她的录音 该文档甚至有一个简单的示例 请参阅声明共享或操作扩展支持的数据类型 https developer apple com library content document
  • 打印附加结构(swift 4)

    我有三个 textifled 用于将数据附加到结构中 如何打印我附加的内容 现在我收到一条错误消息 import UIKit class ViewController UIViewController IBOutlet var c UITe
  • UIImage:如何获取网站选项卡图标

    我正在开发一个 RSS 阅读器 我需要获取每个提要的图标 例如 如果我的提要是 google com 我想获取 G 图标并将其放入 UIImage 或其他内容中 关于如何实现这一目标有什么想法吗 最简单的方法是使用 Google NSStr
  • Cognito/IAM 策略和 S3 获取对象

    我正在尝试将 S3 和 Cognito 集成到我的 iOS 应用程序中 但到目前为止尚未成功 我相信该错误与我针对 Auth 和 Unauth 用户的 IAM 策略有关 所以这是我的政策 Version 2012 10 17 Stateme
  • 播放(非库)Apple Music 内容 - 请求失败

    我正在尝试使用以下代码播放专辑 let predicate MPMediaPropertyPredicate value 1459938538 forProperty MPMediaItemPropertyAlbumPersistentID
  • 如何在 Swift 语言中传递错误指针?

    我试图在 swift 中传递错误指针 但无法这样做 编译器抱怨 NSError 无法转换为 NSErrorPointer var error NSError NSError var results context executeFetchR

随机推荐

  • 如何在delphi中将图标转换为具有alpha透明度的png?

    下面的代码将从文件中提取图标并将其转换为 png 但没有 alpha 透明度 var IconIndex word icon TIcon png TPngImage bmp TBitmap begin IconIndex 0 icon TI
  • C++ 二维 std::vector 最佳实践

    我正在构建一个应用程序 需要支持二维数组来保存数据网格 我有课Map包含二维数据网格 我想使用向量而不是数组 我想知道使用二维向量的最佳实践是什么 我应该有一个 MapCells 向量的向量吗 或者它应该是指向 MapCells 的指针向量
  • Docker echo 环境变量

    我正在尝试编写一个小 docker 文件来设置用户并仅回显当前用户作为一个小示例 以向自己证明它正在工作 我尝试了多种变体 但在文档中找不到太多帮助 FROM ubuntu USER daemon ENTRYPOINT echo USER
  • 在 Ubuntu 10.10 上安装 git-flow 无提示地失败

    我正在尝试使用 github 上的说明安装 gitflowreadme http github com nvie gitflow啦啦 wget q O https github com nvie gitflow raw develop co
  • 定义类模板的友元函数模板

    我想定义一个类模板的函数模板 代码如下所示 template
  • 如何在没有belongsTo的情况下处理Grails中的多对多?

    我需要在 Grails 中创建多对多关系 我有一个 问题 域和一个 标签 域 一个问题可以有 0 个或多个标签 一个标签可以有 0 个或多个问题 如果我在每一边都放一个 hasMany 它会给我一个错误 说我需要一个 belongTo 某处
  • 确定 github 页面上的页面已过时

    Github 页面 http pages github com 设置非常激进的缓存标头 Cache Control max age 86400 1 day Expires提前 1 个月 所有提供的内容 如果您更新页面并推送到 github
  • TryAcquireSRWLock* 和 _WIN32_WINNT

    根据文档 尝试获取SRWLockShared https technet microsoft com en us library dd405524 aspx and 尝试获取SRWLockExclusive https msdn micro
  • Windows 7 TextureBrush..ctor() 错误

    我有一个 NET 2 0 应用程序 在 XP 和 Vista 上运行得很好 但在 Windows 7 RC x64 上它崩溃并出现以下错误 异常信息 异常类型 System OutOfMemoryException 消息 内存不足 数据 S
  • Ruby 中的哈希“has_key”复杂性

    我有一个哈希vars a gt Name b gt Address c gt Phone 我想检查这条线的性能 vars has key b 是 O 1 还是 O 哈希大小 简单的基准 require benchmark iteration
  • 为什么我们在 .class 文件的开头需要一个幻数?

    我在这里读了一些关于神奇数字的帖子0xCAFEBABE在每个java的开头 class文件并想知道why它是需要的 这个标记的目的是什么 现在还需要吗 或者现在只是为了向后兼容 找不到回答这个问题的帖子 我也没有在 java 中看到答案sp
  • WebSocket 服务器的最佳实践是什么?

    假设您有一个网站 用户可以在其中打开聊天室 房间打开后 用户可以邀请其他人并聊天 我们还假设您想使用 WebSockets 与客户端进行通信 在大多数服务器端 WebSocket 实现中 都有一个简单的函数 例如connection bro
  • 如何防止Laravel路由被直接访问(即非ajax请求)

    在我的项目中 我纯粹使用 Laravel 作为后端 api 所有前端均由 Angular javascript 处理 目前 Laravel 路由可以直接访问 它会输出浏览器中显示的所有 Json 数据 我想对其进行限制 以便 Laravel
  • 将数据帧转换为 treeNetwork 兼容列表

    考虑以下数据框 Country Provinces City Zone 1 Canada Newfondland St Johns A 2 Canada PEI Charlottetown B 3 Canada Nova Scotia Ha
  • “转换”asp.net 形式为 html 形式

    我有一个 asp net 网络表单 用户在文本框中输入数据 我也这样做OnClick SubmitData 有一个按钮 现在我想使用 jquery 并使我的表单看起来更好 但我不知道是否可以保留 asp net 控件或是否必须转换为 htm
  • 如何将具有动态 ID 的文档保存到 Cloud Firestore 中?总是在变化

    我使用 Cloud Firestore 作为我的数据库 这是我网页上的表单代码 它在我的 Cloud Firestore 集合中创建一个名为 esequiz 的新文档 那么我该如何编码才能使其始终为数据库中的文档数加 1 呢 并设置数据库内
  • 授予读取 Amazon S3 存储桶内子目录的权限

    我以前从未使用过 AWS S3 我们用它来自动备份客户的通话录音 我们的一位客户出于审计目的需要访问他们的录音 我使用客户端 Cyber Duck 作为访问文件的方式 我只想让他们访问他们的文件 我们的文件结构如下 recordings 1
  • 在 Plotly (R API) 中绘制地理参考栅格图像

    我想用Plotly https github com ropensci plotly 在 R 中创建考古发掘战壕的 3D 模型 我非常成功地绘制了点和表面数据 示例 Vignette https isaakiel github io rec
  • 我什么时候应该在 CMake 中用 ${...} 包装变量?

    我想知道为什么 CMake 中的变量经常用美元符号和大括号括起来 例如 我看到这个电话在 CMake 教程中 https github com LaurentGomila SFML wiki Tutorial Build your SFML
  • 如何允许在某些区域拖动 UIView (PanGesture..)

    我需要通过拖动 UIViewPanGestureRecognizer 我知道该怎么做 但我不知道如何在限制下做到这一点 需要从顶部进行一些填充 并且如果与设备的四个边 左 右 顶部 这里是填充 和底部 之一发生碰撞 请停止拖动 并且不能像顶