UICollectionView - 如果选择了单元格,则不会调用 didDeselectItemAtIndexPath

2024-07-04

我做的第一件事是设置选定的单元格。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
    cell.selected = YES;
    return cell;
}

并且单元格被成功选择。 如果用户触摸选定的单元格,则应取消选择该单元格并调用代表。但这永远不会发生。

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"%s", __PRETTY_FUNCTION__);
}

- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"%s", __PRETTY_FUNCTION__);
}

我知道如果我以编程方式设置选择,则不会调用代表。 委托和数据源已设置。

然而,该代表被调用:

- (BOOL)collectionView:(UICollectionView *)collectionView shouldHighlightItemAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"%s", __PRETTY_FUNCTION__);
    return YES;
}

如果我删除cell.selected = YES比一切都正常。有谁能给我解释一下这种行为吗?


问题是,单元格被选中,但是UICollectionView对此一无所知。额外致电UICollectionView解决问题:

[collectionView selectItemAtIndexPath:indexPath animated:NO scrollPosition:UICollectionViewScrollPositionNone]; 

完整代码:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
    cell.selected = YES;
    [collectionView selectItemAtIndexPath:indexPath animated:NO scrollPosition:UICollectionViewScrollPositionNone];
    return cell;
}

我保留这个问题是为了帮助可能面临同样问题的人。

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

UICollectionView - 如果选择了单元格,则不会调用 didDeselectItemAtIndexPath 的相关文章

  • 准备 iPhone 的调试器支持

    我无法在 iPhone 上安装该应用程序 我被这条消息困住了 准备 iPhone 的调试器支持 在这里尝试了所有答案 https stackoverflow com questions 46316373 xcode9 iphone is b
  • UIWebView 中自动填充用户名和密码

    我正在为我做一个非常简单的应用程序 当我启动这个应用程序时 它只会将我带到这个网页https social tre it expert https social tre it expert 我想自动登录 那么有没有办法自动填写用户名和密码
  • React-Native 服务器驱动的 ui

    我总是想知道 Airbnb Flipkart 和 Swiggy 等应用程序如何动态更新其 UI 即使我没有更新应用程序 Flipkart 在节日期间也会显示不同的 UI 而 Swiggy 总是根据设备位置更改其 UI 我如何在我的react
  • i识别人的扫描图像中的眼睛

    我想开发一个 iPhone 应用程序 它应该识别 QR 阅读器扫描的图像中人的眼睛 脸部和肤色 如何在图像中检测眼睛 虽然这可能是可能的 但我只是警告您 无论编程如何 它都会有一定程度的不准确性 任何面部 视网膜检测软件都可能被欺骗 并且考
  • 从其选项卡访问常规 UITabBarController 属性?

    我将描述我想做的事情 我有登录页面 ViewController 登录后 我传递到 UITabBarController MainTabBar m 这个MainTabBar有 key 属性 它从登录页面获取用户密钥 UITabBarCont
  • 开发者拒绝后在新的 iTunes Connect 中提交新的应用程序版本

    我从新 iTunes Connect 的提交队列中删除了我的构建 现在 当我向应用程序商店提交新版本时 它们会显示在 预发布 下 但不会显示在 版本 下 所以现在我的应用程序信息中只显示 1 0 准备出售 1 0 25 开发人员已拒绝 在
  • Spotify 会话管理

    我在我的应用程序中有一个 Spotify 登录并尝试进行自动登录 登录功能 func getSpotifyToken fromController controller UIViewController success spotifyTok
  • UIDatePicker 在 iOS 9 中无法正常显示

    我没有使用自动布局 这就是 UIDatePicker 在 iOS 9 上我的应用程序中的显示方式 选择器在 iOS 8 中看起来完美无缺 但问题仅存在于 iOS 9 中 知道如何解决此问题 P S 使用 auto布局目前对我来说不是一个解决
  • iOS 9 中的触觉

    您可以在 iPhone 6s 上使用 iOS 9 中的 Taptic 引擎吗 WatchOS2 和 OS X 能够使用触觉引擎 所以我认为 iOS 9 中也会有 但我找不到任何 API 是的 我对内部进行了逆向工程UIKit我发现了另一种
  • 导航栏标题视图对齐

    我希望我的导航栏在中间显示两件事 其中之一是列表名称 另一个是用户名称 用户名将放置在列表名称下 到目前为止我所做的是 我以编程方式创建了两个标签和一个超级视图 并设置titleView of navigationItem override
  • PHAsset(或 ALAsset)跨设备标识符

    我实际上正在创建一个 iOS 应用程序 并且想要在 SQLite 数据库中存储有关照片库图片的一些详细信息 我还希望能够在用户拥有的不同设备上共享这些数据 想象一下有人想要在他的 iPhone 上重新组织图片 并想要在他的 iPad 上检索
  • 如何刷新 WatchApp 复杂功能

    所以我正在尝试更新headerTextProvider 每一秒都有一个Timer scheduledTimer withTimeInterval 1 repeats true timer in 我想这不是正确的做法吗 MY STUFF HE
  • 像 peek and pop 一样手动振动 iPhone 6S?

    如何手动触发类似单击的振动 就像使用 peek pop 或应用程序快捷方式时发生的振动一样 这个方法很容易实现 而且效果非常好 我自己尝试过 import AudioToolbox AudioServicesPlaySystemSound
  • Google 登录显示不正确的项目名称 - iOS

    我一直在集成 Google 登录 以便使用 Google Calendar API 同步日历事件 当我尝试登录时 我收到了这个消息 正如您所看到的 项目 应用程序的名称显示为 project xxxxxxxxx 而不是项目名称本身 如何在这
  • iOS Swift:谷歌登录错误

    我正在关注this https developers google com identity sign in ios sign in ver swift before you begin使用 swift 在我的 iOS 应用程序中添加 go
  • UICollectionView - 如果选择了单元格,则不会调用 didDeselectItemAtIndexPath

    我做的第一件事是设置选定的单元格 UICollectionViewCell collectionView UICollectionView collectionView cellForItemAtIndexPath NSIndexPath
  • UIScrollView 在 addSubview 或更改框架后出现不必要的滚动

    我有一个UIScrollView充满子视图 创建它并最初填充它时一切都很好 但是 当我添加位于可见屏幕部分之外的新子视图时 或者当我只是调整也在可见屏幕部分之外的现有子视图的大小时 会出现随后的 0 3 秒长的滚动动画 我可以看到它 发生在
  • 在 Xamarin.Forms 中添加方向更改布局

    我需要实现的是 在将屏幕从纵向更改为横向时向现有页面添加布局 我已经成功地使用检测方向变化void OnSizeAllocation 双倍宽度 双倍高度 但我无法为此事件添加布局 我的示例 C 代码是 public class MyLayo
  • 在类型中找不到枚举大小写开关

    有人可以帮我解决这个问题吗 我有以下内容public enum public enum OfferViewRow case Candidates case Expiration case Description case Timing ca
  • 删除 iOS 中的后台位置警报?

    我正在编写一个跟踪用户位置的导航应用程序 为了继续显示有关路线的通知 当手机锁定 接听电话等时 我还需要在应用程序处于后台时继续跟踪位置 Capabilities gt Background Modes gt Location update

随机推荐

  • QTreeView、QFileSystemModel、setRootPath 和 QSortFilterProxyModel 以及用于过滤的 RegExp

    我需要显示特定目录的 QTreeView 并且我想让用户能够使用 RegExp 过滤文件 据我了解 Qt 文档 我可以使用标题中提到的类来实现这一点 如下所示 Create the Models QFileSystemModel fileS
  • 通过key查询模型

    我想做的是查询数据存储中的模型 其中密钥是not我已经拥有的对象的密钥 这是一些代码 class User db Model partner db SelfReferenceProperty def text message self ms
  • ASM 16Bit 将输入缓冲区字符串转换为数字

    也许有人可以帮助我 我正在尝试打印 用户输入的数量 所以我需要将字符串转换为数字 我正在尝试循环执行此操作 但遇到一些问题 我的代码无法正常工作 它正在打印 65535 基本上这是最大值 也许有人可以解释我的问题出在哪里 MODEL sma
  • 将矩阵的每一列乘以另一个矩阵

    我有一个M x N矩阵 我想将每个相乘N列由aM x M矩阵 以下在循环中执行此操作 但我不知道如何对其进行矢量化 u repmat sin 2 pi f t n 1 W rand n answer size u for i 1 size
  • 连接到 Redis 与多个工作线程一起使用时遇到问题

    我在使用 Heroku 中的 kue 连接到 redis 来处理多个工作进程时遇到问题 我可以在本地主机上与多个工作人员连接到 redis 但在与 redis to go 连接时似乎会中断 只有当我运行多个 kue 工作线程 进程时 这似乎
  • 对 .NET Remoting CAO 的暴力攻击

    我正在尝试使用 NET 远程客户端激活对象来在多次调用期间保留客户端的身份验证信息 而不是实现需要客户端在每次调用中发送会话 ID 的会话管理系统 正如 MSDN 所说 当客户端使用 new 运算符提交对服务器对象的请求时 激活请求消息将发
  • 如何使用 MVVM light 处理 WP 8.1 上的后退按钮?

    我正在寻找适当的方法来处理 Windows Phone 8 1 WinRT 上的后退按钮按下事件NavigationService在 MVVM light 5 上可用 到目前为止 我认为最好的地方是在ViewModelLocator通过注册
  • R: tibble::lst 名称中不需要的引号

    我最近才了解到tibble lst 它创建一个列表对象 但自动命名列表项 我用它作为快捷方式 gt 使用名称作为工作流程 id论证中map dfr 所以自动命名确实很有帮助 然而 这些名称都带有引号 我注意到这一点是因为它们笨拙地打印在轴刻
  • Python将html ascii编码文本转换为utf8

    我有一个 xml 文件 需要将其转换为 utf8 不幸的是 这些实体包含这样的文本 047 mytext 044 我正在使用编解码器库将文件转换为 utf8 但 html 实体无法使用它 有没有一种简单的方法可以摆脱html编码 Thank
  • 如何让电报机器人通过链接加入频道?

    我想编写一个爬虫机器人 它可以浏览频道并找到具有高观看次数的消息 是否可以通过链接将机器人添加到频道 机器人是否可以读取频道中广播的消息 机器人是否可以读取频道中消息的查看计数值 如果上述任何一个问题是可能的 那么解决方案是什么 只有创建者
  • JSON e 和 JSON E

    在 JSON 网站上here http www json org 它解释了 JSON 对象 的不同可能性 然而 在数字部分 这些出现 e e e E E E 1 这些代表什么 在寻找答案的过程中
  • 正则表达式在日期中添加连字符

    在 R 中 我有一个如下所示的字符串 x lt c 20130603 00 00 03 102 20130703 00 01 03 103 20130804 00 03 03 104 我想通过使用一个单一的看起来像下面gsub命令 而不是使
  • 当object.next到达末尾时如何指向第一个元素?

    从数组创建枚举对象a 有没有什么方法可以指向 first when next到达终点 a 5 1 b a to enum b next gt 5 b next gt 1 b next gt Stop Iteration Iteration
  • mySQL 和 XAMPP 端口冲突

    我已经使用 XAMPP Apache 一段时间了 最 近决定安装 MySQL 然而 它们似乎是矛盾的 MySQL 似乎优先 并且它运行正常 但是 XAMPP Apache 在尝试启动 Apache 时给我此错误消息 03 07 32 AM
  • 在 Windows Server 2003 上安装 PHP 5 - %1 不是有效的 Win32 应用程序

    我正在尝试在带有 IIS 6 的 Windows Server 2003 环境上安装 PHP 5 安装 PHP 并在 IIS 中进行必要的更改后 出现以下错误 1 is not a valid Win32 application 服务器不是
  • 无法使用react-native-xmpp连接openfire

    我有一个反应本机聊天应用程序 我使用 USB 调试在我的 Android 手机上运行 并且我使用 OPENFIRE 作为聊天服务器 为了与 Openfire 连接 我正在使用库 反应本机xmpp 下面是使用react native xmpp
  • 嵌入式Python,导入数学错误

    首先我使用的是 Mac OSX 10 12 6 我想在我的 C 应用程序中嵌入 python 环境 我把 github python 项目放在https github com python cpython https github com
  • Asyncio 函数在从脚本调用时有效,但在 Flask 路由中无效

    我是 Python 和这些库 模块的新手 我正在编写一个简单的 ping 测试网络扫描仪作为学习项目 我首先使用 asyncio 开发了一个脚本来 ping 网络上的地址 ip test py import asyncio import i
  • 如何检测动态绘制图形的点击?

    我正在面板上绘制文件和文件夹名称列表 并试图集体讨论检测用户是否单击文件 文件夹名称以及何时单击文件 文件夹名称以及他们实际单击的文件或文件夹名称的最佳方法 以下是我迄今为止编写的方法 我的第一个想法是用透明控件搭载每段文本 并以这种方式动
  • UICollectionView - 如果选择了单元格,则不会调用 didDeselectItemAtIndexPath

    我做的第一件事是设置选定的单元格 UICollectionViewCell collectionView UICollectionView collectionView cellForItemAtIndexPath NSIndexPath