UICollectionViewCell 上的长按手势

2023-12-09

我想知道如何将长按手势识别器添加到 UICollectionView(子类)中。我在文档中读到它是默认添加的,但我不知道如何添加。

我想做的是: 长按某个单元格 (我有一个来自 github 的日历),获取哪个单元格被点击,然后用它做一些事情。我需要知道哪个单元格被长按。很抱歉这个广泛的问题,但我在谷歌或SO上找不到更好的东西


Objective-C

In your myCollectionViewController.h文件添加UIGestureRecognizerDelegate协议

@interface myCollectionViewController : UICollectionViewController<UIGestureRecognizerDelegate>

in your myCollectionViewController.m file:

- (void)viewDidLoad
{
    // attach long press gesture to collectionView
    UILongPressGestureRecognizer *lpgr 
       = [[UILongPressGestureRecognizer alloc]
                     initWithTarget:self action:@selector(handleLongPress:)];
    lpgr.delegate = self;
    lpgr.delaysTouchesBegan = YES;
    [self.collectionView addGestureRecognizer:lpgr];
}

-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer
{
    if (gestureRecognizer.state != UIGestureRecognizerStateEnded) {
        return;
    }
    CGPoint p = [gestureRecognizer locationInView:self.collectionView];

    NSIndexPath *indexPath = [self.collectionView indexPathForItemAtPoint:p];
    if (indexPath == nil){
        NSLog(@"couldn't find index path");            
    } else {
        // get the cell at indexPath (the one you long pressed)
        UICollectionViewCell* cell =
        [self.collectionView cellForItemAtIndexPath:indexPath];
        // do stuff with the cell
    }
}

Swift

class Some {

    @objc func handleLongPress(gesture : UILongPressGestureRecognizer!) {
        if gesture.state != .Ended {
            return
        }
        let p = gesture.locationInView(self.collectionView)

        if let indexPath = self.collectionView.indexPathForItemAtPoint(p) {
            // get the cell at indexPath (the one you long pressed)
            let cell = self.collectionView.cellForItemAtIndexPath(indexPath)
            // do stuff with the cell
        } else {
            print("couldn't find index path")
        }
    }
}

let some = Some()
let lpgr = UILongPressGestureRecognizer(target: some, action: #selector(Some.handleLongPress))

Swift 4

class Some {

    @objc func handleLongPress(gesture : UILongPressGestureRecognizer!) {
        if gesture.state != .ended { 
            return 
        } 

        let p = gesture.location(in: self.collectionView) 

        if let indexPath = self.collectionView.indexPathForItem(at: p) { 
            // get the cell at indexPath (the one you long pressed) 
            let cell = self.collectionView.cellForItem(at: indexPath) 
            // do stuff with the cell 
        } else { 
            print("couldn't find index path") 
        }
    }
}

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

UICollectionViewCell 上的长按手势 的相关文章

  • SplitViewController 与 TabbarController

    我在我的应用程序中使用分割视图功能 我必须将选项卡栏放在 rootViewController 中 但是 当我在选项卡栏中添加控制器并将它们添加到分割视图中时 它不会分割 它只显示detailViewController 这是应用程序中完成
  • 从 Google/Facebook 帐户重新验证用户身份

    因此 我需要创建一个 REST API 来为 IOS 应用程序提供功能 我们允许用户仅使用普通帐户或使用脸书 谷歌登录 我最近一直在阅读 OAuth 我想我了解在我的情况下如何使用 OAuth 的过程 当用户使用脸书 谷歌登录 在我的应用程
  • 使用 UINavigationController 从右向左推送 ViewController

    大家都知道UINavigationController从左到右推送ViewController 有没有办法从右到左推送View 就像后退按钮的动画一样 现在我有这个 self navigationController pushViewCon
  • 即席分发失败

    我在一家大公司工作 正在开发一个适用于 iOS 5 的 iOS 应用程序 分发应用程序的唯一方式是通过临时部署 我拥有自己的服务器已经有一段时间了 由 o2switch 法国托管商 托管 当我开始开发时 我们使用它来部署应用程序以进行 Be
  • 快速找到一个数字的下一个倍数的方法

    我需要找到从基数开始的数字的第一个倍数 例如 7 中 3 的第一个倍数是 9 我的第一次尝试是这样做 multiple baseNumber while multiple number 0 multiple 最后 multiple 将具有第
  • just_audio 无法在 ios flutter 上工作未处理的异常:(-11800)操作无法完成

    我正在尝试从它自己的存储库运行 just audio 示例项目https github com ryanheise just audio tree master just audio example https github com rya
  • NSMutableData 删除字节?

    我可以使用以下命令轻松地将字节添加到 NSMutableData 实例appendData方法 但是我没有看到任何类似的删除数据的方法 我是否忽略了某些内容 或者我是否需要创建一个新对象并仅复制我需要的字节 请参阅以下方法的文档 void
  • 当 iPhone 设备方向朝上/朝下时,我可以判断它是横向还是纵向吗?

    我得到这个代码 如果设备处于左 右横向或上下颠倒状态 它会旋转并显示另一个视图控制器 但如果它的方向朝上或朝下 那么我如何判断它是横向模式还是纵向模式 因为我只想在它面朝上或朝下以及横向模式下旋转 void viewDidAppear BO
  • 我可以使用 NSDateFormatter 将此日期字符串转换为 NSDate 吗?

    我有这个字符串 2010 08 24T16 00 00 05 00 我想从中提取时间部分 即 16 00 并将其转换为 12 小时等效值 即下午 04 00 我正在尝试使用 NSDateFormatter 来完成此任务 但它不起作用 NSD
  • 从 NSString 的第一行删除换行符

    我怎样才能删除第一个 nNSString 中的字符 编辑 只是为了澄清一下 我想做的是 如果字符串的第一行包含 n 字符 请将其删除 否则不执行任何操作 即 如果字符串是这样的 nhello this is the first line n
  • 处理 NSPropertyListSerialization 中的 CFNull 对象

    在我的应用程序中 我尝试序列化服务器响应字典并将其写入文件系统 但对于某些响应 我收到错误 属性列表格式无效 原因是服务器响应中的 CFNull 对象 现在 服务器响应将不断变化 因此我没有明确的方法来删除 CFNull 对象 下面是我的代
  • 连接到 Apple Music

    所以我尝试使用 React Native 应用程序从 iOS 设备连接到 Apple Music 有一个 API 可以执行相同的操作 但我需要从 storekit 框架调用一个函数 提出个性化请求 苹果音乐API https develop
  • insertObject:atIndex 的复杂性:

    复杂度是多少 NSArray insertObject atIndex N 或常数 另外 如何找出各种 Objective C 语句的复杂度 有一个在这里讨论 http www cocoadev com index pl NSMutable
  • UITextInput setMarkedText:selectedRange 不起作用? (不可能!)

    我想以编程方式设置标记的文本 并且由于 iOS5 UITextView 和 UITextField 符合 UITextInput 这应该是可能的 但由于某种原因我总是得到markedText为零 我在这里缺少什么 这是我尝试过但没有成功的方
  • iOS:addConstraints:应用程序崩溃

    Problem 我似乎无法在现有项目中采用自动布局 Details 我之前也遇到过与此问题相同的问题presentViewController 在 iOS 但所提供的答案都不是我的解决方案 我正在使用所有没有 xib 的故事板视图 我的 使
  • iOS 11 getUserMedia 不起作用?

    苹果公司发表声明称getUserMedia将在 iOS 11 上完全正常运行 安装 iOS 11 Beta 版本 5 后 我确实收到一条消息 表明我的网站请求访问我的相机和麦克风 但似乎是这样的 video src window URL c
  • 如何在 XCode5 中将部署目标更改为 5.1.1 [重复]

    这个问题在这里已经有答案了 我正在一个项目中工作 我需要支持 iOS 5 1 1 但在 部署目标 的下拉菜单中我没有 5 1 1 作为选项 我的问题是如何将 iOS 5 1 1 添加为部署目标 我将非常感谢你的帮助 如果您愿意 您可以在框中
  • 桌面上的 AVAudioSession?

    在 mac 桌面上 我试图录制系统声音 以及可选的麦克风声音 但一开始我只是录制系统声音 我正在遵循本指南 https www appcoda com ios avfoundation framework tutorial https ww
  • NSURLConnection 是否自动保留从服务器发送的 cookie?

    我从 ios 登录到我的龙卷风后端并发回 secure cookie 我注意到只要验证我设置的 secure cookie 我还可以请求其他信息 NSURLConnection 会保留 cookie 多久 或者关闭应用程序后 cookie
  • Swift 3 和 Xcode8 - init 的使用不明确

    在我安装 Xcode 8 并将项目转换为 Swift 3 之前 以下行没问题 现在转换后看起来像这样 let valueData Data Data bytes UnsafePointer

随机推荐

  • 从元模型强制执行单个实例

    我知道从类级别确保单个实例要容易得多 而且有很好的StaticishJonathan Stowe 的模块通过使用角色来执行相同的操作 但我只是想尝试更好地理解如何阶级高阶工作可以处理 主要是针对FOSDEM的讲 我可以想到在元模型级别上执行
  • 如何手动轮换 log4j 日志

    我将 log4j 配置为每天轮换日志 在特殊情况下 我想手动触发额外的日志轮换 这可能吗 如果可能的话 如何实现 像这样解决 void rolloverLogs for final Enumeration appenders logger
  • 使用 php-imagick api 将 PDF 转为图像

    我想将 PDF 转换为图像 但是当输出图像生成时 它会比原始图像变得模糊 这是代码 uploadfile pdf 53 img new Imagick uploadfile img gt setResolution 300 300 img
  • Tkinter 将带参数的函数绑定到小部件

    我有一个 tkinter 框架和一个附加到它的按钮 from tkinter import def rand func a b c effects print a b c root Tk frame Frame root frame bin
  • PHP:HTTP 基础 - 注销

    我想将其设置为如果有人发送 注销 请求 它会自动将他们带到一个显示 成功注销 的页面 如果客户尝试按后退按钮或进入受限区域 它将再次要求 HTTP 身份验证 到目前为止我所拥有的是这样的 example com restricted ind
  • Python 中 list.index(x) 的复杂性

    我指的是这个 http docs python org tutorial datastructs html 运行时间是多少list index x Big O 表示法的函数 时间复杂度为 O n 另请查看 http wiki python
  • 检查点是否位于由多个多边形/孔组成的空间对象中

    我有一个 SpatialPolygonsDataFrame 其中包含 11589 个 多边形 类对象 其中 10699 个对象恰好由 1 个多边形组成 但其余对象由多个多边形 2 到 22 组成 如果一个对象由多个多边形组成 则可能出现三种
  • Wix 安装程序包生成损坏的“msi”

    使用非常简单的代码 几乎与示例中相同
  • 在单元测试中使用反射是一种不好的做法吗? [复制]

    这个问题在这里已经有答案了 在过去的几年里 我一直认为在Java中 反射在单元测试中被广泛使用 由于一些必须检查的变量 方法是私有的 因此有必要读取它们的值 我一直以为Reflection API也是用于这个目的的 上周我必须测试一些包 因
  • Intel TSX 前缀是否在 AMD 上作为 NOP 执行(安全)?

    我有一个在 Intel 和 AMD x86 机器上运行的应用程序的 MASM 同步代码 我想使用 Intel TSX 前缀 特别是 XACQUIRE 和 XRELEASE 来增强它 如果我为 Intel 正确修改代码 当我尝试在 AMD 机
  • 检测其他进程正在使用的文件

    在 Windows 等上 我曾经使用一种技巧来找出当前正在使用的文件 专门编写的 我用来打开文件进行写入 如果失败 很可能另一个进程正忙于访问它 遗憾的是 这些技巧 使用带有独占锁的 C OPEN 进行写入 在我的 Mac 上不起作用 当我
  • 重叠的 UITableViewCell 内容视图

    I have this table whose cells look like this As you can see the top border of every cell is supposed to overlap with the
  • 在目标 c 中生成初始化向量

    java代码是 Cipher c Cipher getInstance AES CBC PKCS5Padding byte ivBytes new byte c getBlockSize String IV CryptoUtils hexE
  • 如何将 php 短标签转换为完整标签 [重复]

    这个问题在这里已经有答案了 我要编辑另一个人的项目 他在脚本中到处都使用了 php 短标签 我的服务器中禁用了短标签 我认为转换所有短标签而不是在我的服务器中启用短标签是更好的选择 那么哪条路走得更好 转换所有短标签 在我的服务器中启用短标
  • 发布 mailto: 表单时邮件正文的限制

    我有一个 HTML 表单 其中包含lot输入字段 我用它来填充电子邮件 今天我了解到使用 GET 方法会限制发布内容的大小 但据我所知 使用 POST 时没有限制 嗯 可能有 因为我相信这可能是我的问题 当我的电子邮件达到一定大小时 或者如
  • 以编程方式登录时没有创建 Spring Security Remember me cookie

    注册 注册 后 我将通过 Spring Security 以编程方式登录我的用户 public register HttpServletRequest request String user String password request
  • 将 int 转换为具有一定长度 char 的字符串

    如果标题不清楚 我会尽力在这里解释清楚 我有一堆整数 范围从 1 到 999 我需要将它们转换为字符串 但是当我这样做时 我需要它们的长度为 3 个字符 举例来说 如果我有 int i1 45 然后当我把它变成一个字符串时 我需要这个 04
  • 应用服务 VNet 与 Azure 存储服务端点集成

    I made an App Service S1 and then from the Networking blade created a VNet Integration using the documentation here The
  • 如何为 Python 3.5 安装 Psycopg2

    我正在使用 powershell 在 Windows 7 上尝试以下命令 pip install psycopg2 我收到一个错误 错误 需要 Microsoft Visual C 14 0 无法找到 vcvarsall bat 命令 C
  • UICollectionViewCell 上的长按手势

    我想知道如何将长按手势识别器添加到 UICollectionView 子类 中 我在文档中读到它是默认添加的 但我不知道如何添加 我想做的是 长按某个单元格 我有一个来自 github 的日历 获取哪个单元格被点击 然后用它做一些事情 我需