禁用 uitableviewcell 上的多次点击

2024-02-06

我有一个 uitableview 实现了弹出窗口(弹出视图 https://github.com/runway20/PopoverView)当点击某个单元格时,弹出窗口将在屏幕上的任何其他点击时消失。问题是,如果用户双击或重复点击单元格,则会导致显示多个弹出视图实例,然后应用程序将崩溃。我正在寻找一种方法来禁用单元格上的双击并/或者UITableView一般来说,或者有没有办法延迟触摸UITableViewCell有任何想法吗?

我已经尝试过了this https://stackoverflow.com/questions/1031254/how-can-i-detect-a-double-tap-on-a-certain-cell-in-uitableview但它不适用于我的情况。 另一种方法是检查 PopoverView 是否已经存在,如果存在则不允许实例化另一个。我试过this https://stackoverflow.com/questions/2777438/how-to-tell-if-uiviewcontrollers-view-is-visible and this https://stackoverflow.com/questions/5503187/uiview-how-to-find-out-if-a-view-is-already-exists两者都不适用于我的情况。

这是我的代码,我在其中调用弹出窗口视图didSelectRowAtIndexpath:

- (void)tableView:(UITableView *)TableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
   UITableViewCell *cell = [TableView cellForRowAtIndexPath:indexPath];
sti = [[SelectedTeamsInfo alloc] init];
MyLeagueStandings *info = [fetchedResultsController objectAtIndexPath:indexPath];
[sti getAllScheduleForTeam:info.urlforteam];
NSString *title = info.teamname;

// If title length is greater then 32 truncate it to fit.
if (title.length > 32) {
    title = [info.teamname substringToIndex:29];
    title = [title stringByAppendingString:@"..."];
}


[PopoverView showPopoverAtPoint:cell.center inView:self.view withTitle:title withContentView:sti.view delegate:self];
}

SOLUTION:

在接口类中:

 BOOL PopoverYN;

在实现类中:

- (void)tableView:(UITableView *)TableView 
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
        // If the popover is not available then display it else do nothing since one is already displayed.
        if (PopoverYN == NO) {
            PopoverYN = YES;
            UITableViewCell *cell = [TableView cellForRowAtIndexPath:indexPath];
            sti = [[SelectedTeamsInfo alloc] init];
            MyLeagueStandings *info = [fetchedResultsController objectAtIndexPath:indexPath];
            [sti getAllScheduleForTeam:info.urlforteam];
            NSString *title = info.teamname;

            // If title length is greater then 32 truncate it to fit.
            if (title.length > 32) {
                title = [info.teamname substringToIndex:29];
                title = [title stringByAppendingString:@"..."];
            }
            [PopoverView showPopoverAtPoint:cell.center inView:self.view withTitle:title withContentView:sti.view delegate:self];
        }

}

#pragma mark - popover methods.
- (void)popoverViewDidDismiss:(PopoverView *)popoverView;
{
    PopoverYN = NO;
}

我还有一种解决方案。希望这会对某人有所帮助。如果您想检测第二次点击并使用它,那么就是这样,这对我有用。我正在单击加载网页视图,如果连续两次点击,则会出现错误NSURLErrorCancelled事件并导致白色闪屏webview。我可以在 webview 级别处理它,但我认为我应该从根本上解决这个问题。

NSTimer *avoidDoubleTapTimer;

- (void) onTimer {  
    NSLog(@"Timer out");
    avoidDoubleTapTimer = nil;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(avoidDoubleTapTimer == nil) {
        avoidDoubleTapTimer = [NSTimer scheduledTimerWithTimeInterval:0.3 target:self selector:@selector(onTimer) userInfo:nil repeats:NO];
    } else {
        NSLog(@"Double Tap Detected");
        return;
    }
// do you stuff on single tap
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用 uitableviewcell 上的多次点击 的相关文章

  • 来自 iPhone/iPad 的 json Web 服务

    有人可以帮助我解决如何从 iphone 或 ipad 使用 json Web 服务的问题吗 这里我的要求是使用 API 密钥实现 json webservice 如果可能的话发布一些教程或示例链接 谢谢 规范的 JSON 处理库是here
  • WhatsApp 显示警告“此项目无法共享。请选择其他项目。”对于 iOS 应用程序。

    我正在开发一个 iOS 应用程序 在该应用程序中 我有社交共享功能 并且社交共享功能使用深度链接来共享 URL 该网址共享对于所有应用程序都运行良好 除了WhatsApp 它会显示一个警报弹出窗口 此项目无法共享 请选择其他项目 以下是我的
  • 拖动时获取MKAnnotation的坐标

    我正在根据用户添加的注释的位置创建一条路径 MKPolyline 我想允许用户通过拖动引脚来更改路径 我目前可以做到这一点 但 MKPolyline 不会更新 直到引脚被放下 我实施了 void mapView MKMapView mapV
  • 为什么 iPhone 上的纹理图像需要具有二维幂?

    我正在尝试解决 iPhone 上的闪烁问题 open gl es game 我有一些没有 2 维的图像 我将用具有适当尺寸的图像替换它们 但为什么尺寸需要是 2 的幂 大多数系统 甚至许多现代显卡 需要 2 的幂纹理的原因是 mipmap
  • UIWebView Bug:-[UIWebView cut:]:无法识别的选择器发送到实例

    In the UIWebView 如果包含文本的输入元素具有焦点 并且按下按钮导致输入失去焦点 则随后双击输入以重新获得焦点并从出现的弹出栏中选择 剪切 或 复制 或 粘贴 会导致这UIWebView因错误而崩溃 UIWebView cut
  • CGImage/UIImage 在 UI 线程上延迟加载会导致卡顿

    我的程序显示一个水平滚动表面 从左到右平铺有 UIImageViews 代码在 UI 线程上运行 以确保新可见的 UIImageView 分配有新加载的 UIImage 加载发生在后台线程上 一切工作几乎都很好 除了每个图像变得可见时出现口
  • 如何测试 UITextField 是否为零?

    我正在尝试制作我的应用程序的一部分 如果该人不更改我的 UITextField 中的空白文本 那么他 她将无法继续下一步 基本上 我想测试 UITextField 的 nil 文本 我已经使用了 if text 方法 但是如果用户单击 UI
  • 核心数据 NSFetchRequest 还获取实体的子对象

    我是 iOS 开发和 Core Data 的新手 我有一个父 NSManagedObject class Units interface Properties NSManagedObject property nonatomic retai
  • 在 swrevealcontroller 之前实现登录屏幕

    我刚刚开始学习 IOS 开发 我已经按照给定的在线教程成功实现了 SWRevealViewController 一切都按预期工作 然后 我决定添加一个登录屏幕 这将是应用程序运行时用户看到的第一个页面 我采取的步骤如下 将 UIViewCo
  • 在不同的捆绑包上测试 iPhone 应用内购买?

    我们有一组 iPhone 应用程序的 Beta 测试人员 最近 我们在应用程序中添加了应用内购买功能 在此之前 我们会使用单独的捆绑 ID 和名称向 Beta 测试人员发送临时版本 以便他们可以在手机上拥有商店版本和临时版本 然而 似乎我们
  • 私人 iPhone 应用程序?

    我有兴趣编写连接到内部网或外部网的应用程序 换句话说 我想为我的客户制作私人应用程序 但我不希望每个人都能够访问它并能够下载它 您知道是否有一种方法可以将企业应用程序仅分发给特定的人 Android 也做同样的事情吗 The iPhone
  • iPhone 崩溃日志?

    我已经配置了一部 iPhone 并让用户安装了该应用程序 它失败 是否有崩溃日志可以让我看到 iPhone 上失败的原因 Ian 如果您可以使用 xcode 将 iPhone 连接到计算机 则在管理器窗口中它会显示每个应用程序崩溃的崩溃日志
  • 用 UIView 像翻书一样翻页?

    我正在尝试在之间切换UIViews让它看起来就像你正在翻书的一页 The UIViewAnimationTransitionCurlUp如果我能让它向左或向右卷曲 那就非常接近了 这可能吗 我尝试过使用CATRansition但没有一种动画
  • 如何在 iOS 中注册自定义文件类型

    我目前正在创建一个应用程序 我想让用户在其中备份他们的文件 plist m4a 我压缩文件并将扩展名更改为自定义扩展名 专门针对我的应用程序 例如 MyBackup 然后 用户可以通过电子邮件或 iTunes 文件共享进行导出 我已经阅读过
  • 如何在 Apple Watch Extension/App 和 iOS App 之间建立通信通道

    我正在探索 WatchKit SDK 当我有 WatchKit 应用程序时 是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值 例如文本 设置 我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函
  • 这个错误是无效上下文0x0吗?

    我在ViewDidLoad中编写了以下代码 Implement viewDidLoad to do additional setup after loading the view typically from a nib void view
  • Objective Flickr 照片上传错误

    我正在使用 ObjectiveFlickr 库将照片从我的 iPhone 应用程序上传到 Flickr 我可以授权该应用程序并执行一般请求 但在尝试上传照片时遇到错误 要上传的照片是使用 AVFoundation 捕获的图像 这是相关代码
  • 沿着预定路径移动图像?

    是否可以通过按下 iphone SDK 中的按钮来将图像设置为沿着预定路径运动 我不是在寻找任何奇特的东西 我正在研究一个简单的概念 但这会节省大量动画工作 是的 您可以通过创建一个路径来为任何 CALayer 制作动画CAKeyframe
  • 为什么我的 tableView 函数运行了 3 次?

    我有一个 UITableView 并且有执行它所需的方法之一 func tableView tableView UITableView numberOfRowsInSection section Int gt Int println sec
  • 重置转换后的 UIView 的原点会变得疯狂

    我使用 UIView transform 旋转 缩放 UIVIew 效果很好 然而 一旦我更改视图的框架原点 即使我没有执行任何进一步的 CGAffineTransforms 视图的内容也会开始 奇怪 地缩放 为什么会出现这种情况 我该如何

随机推荐

  • VSCODE 笔记本 - 是否可以仅显示大纲中的 Markdown 标题?

    我使用 Markdown 标题在笔记本中导航 但我也倾向于制作大量 非标题 Markdown 笔记 两者都出现在大纲中 随着笔记本变大 找到正确的标题变得相当困难 有没有办法抑制大纲中显示的普通降价单元格 我关注了 github 和 at
  • 如何将与字段关联的对象列表检索到实体类中?

    当我通过任何字段找到客户时 一切都很顺利 我得到了带有返回的全局对象的 JSON 我正在编写代码来查找Customer由于他们lastName 客户实体有一个对象 其中的字段lastName被宣布 因此 我希望我的端点像第一种情况一样返回客
  • 从 .NET 中的堆栈帧获取参数值?

    我希望能够从 NET中的堆栈帧中获取所有参数值 有点像在 Visual Studio 调试器中查看调用堆栈中的值的方式 我的方法集中于使用堆栈框架类 http msdn microsoft com en us library system
  • 从 iPad (目标 C) 到 MVP Web API (C#) 的时区映射

    我有一个 Web 服务 MVC Web API 我在其中存储 UTC 格式的日期时间值 iPad 与 API 进行通信 并将传递标头中的时区设置 API 会根据 iPad 发送的时区将 UTC 值转换为正确的本地时间 看来我需要 Objec
  • 如何对齐多个表单元素?

    I ve no clue at design and I m trying to get a simple HTML form to look like this 基本上 它是一个表格three输入字段和one提交按钮 关于输入字段 有上面
  • 使用 Complete.ly 或 typeahead 检测并禁用移动设备上的自动完成功能

    在我的项目中我想使用 Complete ly 参见http complete ly appspot com http complete ly appspot com 或 typeahead js 参见http twitter github
  • javascript - 将数组转换为字符串,同时保留括号

    我有一个多维数组 如下所示 var myArray 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 我希望将其内容放在 div 中 以便可以轻松复制和粘贴 然而 当我这样做时 var x document g
  • 在 Visual Studio 中监视调用堆栈大小

    有没有办法监视 Visual Studio 中的调用堆栈大小 运行时会提供一个调用堆栈窗口 但不显示堆栈的大小 我正在使用 C 并面临堆栈溢出问题 我知道我正在使用的某些递归函数可能有问题 但在解决这些问题之前 我想监视调用堆栈大小以了解发
  • 构建 Apache Zeppelin 时出现错误

    我已经用cloudera 设置了hadoop 我想安装 zeppelin 来连接 hive 并为我的查询构建 UI 使用以下命令构建 zeppelin 命令时 sudo mvn clean package Pspark 1 3 Dspark
  • 由 WPF 应用程序托管时,Win32 应用程序不受 dpi 设置的影响

    我正在 wpf 应用程序中作为一个孩子启动一个旧的 win32 应用程序 问题是 win32 应用程序作为 wpf 应用程序的子应用程序运行时会忽略 dpi 设置 当 win32 应用程序在自己的窗口中启动时 dpi 设置可以达到预期的效果
  • 在 ASP.NET MVC 后的 ajax 中包含 antiforgerytoken

    我在使用 ajax 时遇到 AntiForgeryToken 问题 我正在使用 ASP NET MVC 3 我尝试了以下解决方案jQuery Ajax 调用和 Html AntiForgeryToken https stackoverflo
  • xcode 4.4 中的自动属性合成是如何工作的?

    我是 Objective C 和 XCode 的新手 但我很高兴看到 XCode 4 4 现在自动为我合成我的属性 我认为这意味着我不再需要为我的属性输入 synthesize 并且我可以使用以下方式访问它们self propertyNam
  • 打开一个新的 javascript 窗口(.open) 及其 CSS 样式

    我正在尝试让这个功能在我正在开发的项目的网站上运行 此函数的目的是仅 物理地 打印子 div 的内容 该子 div 巧合地称为选择器 content 这是我到目前为止所掌握的一点点 当用户点击 打印 超链接时 该函数就会被触发 新窗口将加载
  • 如何向图像添加 JPEG 注释 (COM)?

    我正在尝试使用 WPF 将 JPEG 注释添加到图像文件 尝试下面的代码让我ArgumentOutOfRangeException 设置其他属性没有问题 using Stream read File OpenRead my jpeg Jpe
  • Django - PUT/DELETE 请求中的参数存储在哪里?

    我想为我的新 django 项目遵循 RESTful 模式 并且我想知道发出 PUT DELETE 请求时参数在哪里 据我所知 我只在请求中看到 GET 和 POST QueryDict 没有其 他 Django 是否添加了与请求相关的新
  • 我的应用程序崩溃了,因为 firebase admob 依赖项抖动

    我按照这里的说明进行操作 https pub dartlang org packages firebase admob readme tab https pub dartlang org packages firebase admob re
  • HTTP 服务器未将完整文件发送到 WGET、Firefox。连接被对等方重置?

    我正在编写一个 HTTP 服务器 但在发送较大的文件时遇到问题 如果我用 netcat 抓取它们 输出看起来很完美 如果我使用浏览器或 wget 有时我只能得到完整的文件 WGET 不断收到 连接被对等方重置 错误 请参阅下面的输出 Fir
  • PostgreSQL 使用空数组解除嵌套

    我使用 postgreSQL 9 1 在我的数据库中有一个表 看起来像 id values 1 1 2 3 2 其中 id 是整数 values 是整数数组 数组可以为空 我需要取消这个列表的嵌套 如果我查询 select id unnes
  • 使用控制器下载 Laravel Excel

    所以我创建了一个 PHP 控制器来处理由 JS 发布的数据导出 问题是我可以看到它在控制台中创建了一些东西 但文件下载从未开始 我尝试使用 gt store laravel excel 并将其保存在导出文件夹中 但当我尝试使用时再次 ret
  • 禁用 uitableviewcell 上的多次点击

    我有一个 uitableview 实现了弹出窗口 弹出视图 https github com runway20 PopoverView 当点击某个单元格时 弹出窗口将在屏幕上的任何其他点击时消失 问题是 如果用户双击或重复点击单元格 则会导