子类化 UICollectionViewCell 导致永远不会被选择

2024-04-25

我尝试对 UICollectionViewCell 进行子类化并从 nib 文件加载:

- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"DatasetCell" owner:self options:nil];

        if ([arrayOfViews count] < 1) {
            return nil;
        }

        if (![[arrayOfViews objectAtIndex:0] isKindOfClass:[UICollectionViewCell class]]) {
            return nil;
        }

        self = [arrayOfViews objectAtIndex:0];

        UIView *view = [UIView new];
        view.frame = self.frame;
        view.backgroundColor = [UIColor orangeColor];
        self.selectedBackgroundView = view;
    }

    return self;
}

我遇到了选择单元格的问题,cell.selected没有被设置。总是NO这导致取消选择单元格的问题。

如何使单元格进入选定状态?

EDIT:

我最初将自定义 UICollectionViewCell 作为类加载:

[collectionView registerClass:[DatasetCell class] forCellWithReuseIdentifier:@"dataCell"];

切换到加载笔尖:

[collectionView registerNib:[UINib nibWithNibName:@"DatasetCell" bundle:nil] forCellWithReuseIdentifier:@"nibCell"];

我两种方式都有相同的选择/取消选择问题。


主要错误是您定义了一个属性

@property (nonatomic) BOOL isSelected;

在您的自定义 UICollectionViewCell 子类中(在“DatasetCell.h”中),这会干扰 UICollectionViewCell 继承的“selected”属性。

如果删除该属性定义,选择和取消选择将按预期工作,至少对于通过 nib 文件加载的单元格来说是这样registerNib:....

对于通过加载的单元格registerClass:..., initWithFrame叫做。您尝试从那里的 nib 文件加载单元格。这没有多大意义,而且似乎无法正常工作。您应该以编程方式创建单元格initWithFrame并使用registerClass:,或者在 nib 文件中创建单元格并使用registerNib:.

initWithFrame从 nib 文件加载的单元格不被调用,请使用awakeFromNib如果您想对单元格进行修改。

希望有帮助!

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

子类化 UICollectionViewCell 导致永远不会被选择 的相关文章

  • Objective C (iphone) 关于发布的问题

    如果我创建一个视图 并将其添加为子视图并将其添加到数组中 是否必须释放它两次 UIView cat UIView alloc initWithFrame someFrame self view addSubview cat self ani
  • 使用 UItableViewCell 类型的表达式初始化“CustomCellView *”的指针类型不兼容

    你能帮我理解和 修复下面的错误吗 我不明白CustomCellView是一个子类UItableViewCell 代码已编译 但警告仍然存在 Incompatible pointer type initializing CustomCellV
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何
  • 如果加载 dylib,垃圾收集工作队列会崩溃

    我们正在将应用程序从 10 6 移植到 10 8 我正在查看我们在应用程序中加载的 dylib 我面临着非常不寻常的崩溃垃圾收集工作队列并附有以下消息 malloc Thread suspend unable to suspend a th
  • 使用 Interface Builder 创建的自定义视图在其他视图中调用时不会呈现

    我有一个用于主窗口的 xib 并通过以下步骤创建了一个自定义视图 创建一个新类 继承自NSView MyView h import
  • iPhone SQLite页面缓存不断增长

    I use sqlite数据库用于存储 还有许多数据库事务 我的问题是 sqlite 页面缓存的内存使用量快速增长 在instruments我可以找到这条线 Graph Category Live Bytes Living Transien
  • 如何区分 iTunes Connect / Apple TestFlight 上的 STAGE 和 PRODUCTION 版本?

    阶段构建与阶段服务器的对话 阶段服务器与生产服务器尽可能相同 以用于测试目的 生产构建与生产服务器的通信 生产服务器存储真实的关键数据 这些构建本质上是针对同一应用程序的 但是 iTunes Connect 界面将向您显示以下内容 即构建由
  • SceneKit unproject Z 文档解释?

    我正在经历一些 SceneKit 概念 而我试图在脑海中巩固的一个概念是 unprojectPoint 我知道该函数将获取 2D 中的一个点并返回 3D 中的一个点 因此具有正确的 Z 值 当我阅读文档时 我读到了以下内容 method u
  • 使用自动布局、IB 和字体大小时表头视图高度错误

    我正在尝试为我的 uiTableView 创建一个标题视图 不是节标题 我已经有了 我已经在界面生成器中设置了一个 XIB 所有的连接都已连接好并且运行良好 除了桌子没有给它足够的空间 我的问题是表格顶部与表格标题有一点重叠 我的 XIB
  • 如何解决 iOS 6 SDK 中的 hidesBottomBarWhenPushed 行为异常的问题?

    我遇到了中描述的相同问题这个 OpenRadar 问题 http www openradar me 14670329 正如那里所说 摘要 UIViewController的hidesBottomBarWhenPushed属性 对于使用 iO
  • 如何编辑应用程序包中的文件?

    在我的应用程序中 我从存储在捆绑资源中的 CSV 文件加载数据 但是 我希望能够在用户点击 更新 按钮时以编程方式更新此文件 有没有办法以编程方式更改应用程序包中的资源 这是我用来访问该文件的代码 NSString path NSBundl
  • 在 ios 版 Ionic 中接收 URL

    我正在使用离子框架 我正在尝试设置一种从另一个应用程序接收网址的方法 就像 您在浏览器中 单击共享 然后将链接发送到另一个应用程序 我的应用程序 我找到了这个cordova https stackoverflow com questions
  • 在 UITableViewController 中重新排序行后 UI 更新不正确

    因此 我对表中的行重新排序 用户界面最终结果不正确 场景如下 表内容原文 a b c d e 如果我移动第 0 行 当前a 到第 4 行 当前e 我看到的最终结果是 c d e a a 一些背景 该表正在读取 Realm 对象的列表 我确认
  • 将 Armadillo C++ 库导入 Xcode

    我是 Mac 用户 正在尝试安装和导入 C Armadillo 库 以下是我到目前为止所采取的步骤 1 我从其网站下载了犰狳库 2 我仔细阅读了下载文件中的 Readme txt 文件 解释了如何安装它 3 我使用CMake将犰狳下载文件制
  • 访问 google reader 的 Endpoints API 时出错

    我正在尝试在iPhone APP中实现google reader 到目前为止我已经成功收到了sid and auth 当我尝试使用以下命令调用 Endpoints API 时 问题就出现了GET 这是代码 ASIHTTPRequest re
  • UILabel 中的文本未垂直居中

    我使用以下代码创建了一个标签 func setupValueLabel valueLabel numberOfLines 1 valueLabel font UIFont name Avenir Black size 50 valueLab
  • XCode 7 中的 AWSS3TransferManagerUploadRequest

    我今天升级到 Xcode 7 Swift 2 0 我的项目正在使用 CocoaPods 我正在 POD 文件中导入所有与 AWS 相关的文件 我已经设置了桥接标头 并导入了 Amazon 告诉我的所有文件 在升级到 Swift 2 0 之前
  • 检查 Objective-C 块类型?

    这主要是出于好奇 我不太确定它的实际用途是什么 但就这样吧 由于块也是 Objective C 对象 是否可以检查它们的类型 也就是说 它是否响应isKindOfClass 消息以及如何使用该消息来处理块 我天真的以为事情大概是这样的 vo
  • 动画 UICollectionView 单元格大小更改并重新定位周围单元格

    Goal 以动画方式改变单元格的高度并重新定位周围的单元格 设想 集合视图中的某些单元格会加载远程图像 最初 这些单元格的大小是静态的 并显示活动指示器 加载图像后 会将其添加到其单元格中 并且更改单元格的高度以适合照片 Notes 我正在
  • 对象指针值作为字典的键

    我想使用对象的引用值作为字典的键 而不是对象值的副本 因此 我本质上想在字典中存储与另一个对象的特定实例关联的对象 并稍后检索该值 这可能吗 是不是完全违背了NSDictionary的理念 我可以看出我可能以错误的方式处理这个问题 因为字典

随机推荐

  • Powershell添加系统变量

    我正在尝试使用 PowerShell 在此处添加系统变量 我已经尝试过两种方式使用 env MyTestVariable My test variable and Environment SetEnvironmentVariable Tes
  • Asp.Net Identity - 登录后更新声明

    当我的用户从我们的单页应用程序登录时 我使用 asp net 身份 WebApi 2 MVC 5 而不是 net core 添加对用户身份的声明 看起来像这样 我已经取消了对无效名称 锁定帐户等的检查 public override asy
  • 通过 PHP 发送的 HTML 电子邮件在 Gmail 中被视为垃圾邮件

    我有以下 php 脚本 它从服务器上的 txt 文件加载 html 模板 并在发送电子邮件之前使用 str replace 用电子邮件内容填充模板 起初 我尝试将服务器上的 Webmail 地址硬编码到 mailer send 函数的 收件
  • 如何在保持宽高比的同时在网页上显示调整大小的图像?

    使用 JavaScript 在客户端调整图像大小的最佳且最快的方法是什么 编辑 抱歉 我的意思是最好的方法display在客户端调整大小的图像 Easy
  • Orchard CMS 错误“ValueFactory 试图访问此实例的 Value 属性”?

    我正在使用 orchard 1 8 1 并尝试安装主题 Bootstrap 它给了我以下错误 谁能帮我吗 描述 执行当前 Web 请求期间发生未处理的异常 请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息 异常详细信息 System
  • 应使用“sp”而不是“dp”来指定文本大小

    当我使用 android textSizes 20dp 在我的 XML 中textView 我收到警告 应该使用 sp 代替 dp 对于文本大小 为什么不应该使用 dp 正确的做法是什么 如何在不同的显示器上实现相同的文本大小 您应该始终使
  • 在构建之前签署 iOS dylib

    我手中有一个 C 库 需要以 dylib 的形式编译为 iOS 我用过iOS cmake https github com leetal ios cmake该工具已经构建了一个库并创建了 Xcode 解决方案 我可以在目标部分找到该库 所以
  • 安卓支持多种语言吗?

    如果我使用 htc magic 和语言环境英语运行我的 Android 应用程序 我发现我的应用程序运行正常 如果我尝试在摩托罗拉 droid 上使用语言环境韩语运行它 我的应用程序 apk 甚至没有安装在设备上 安卓支持不同语言吗 是因为
  • 十进制和基数 36 之间的转换

    我想使用 PHP 转换以 36 为基数的数字 功能base convert不起作用 因为我想转换大数字 如果我再次将其从基数 36 转换为十进制 我将无法获得初始数字 我尝试了多个网站上提供的某些功能 但从未得到相同的结果 此外 这两个网站
  • 模拟Scheme中Python的范围

    如何在Scheme中创建连续数字的列表 在Python中创建一个从1到10的整数列表是range 1 11 方案有等效的吗 mzscheme version gives Welcome to Racket v5 2 1 Edit Per h
  • z 轴标签未显示在 3D 图中

    我在可视化 3D 绘图时遇到了问题 它看起来没有 z 轴标签 但是当我设置更长的标题时 它会出现 有没有什么方法可以在不修改标题的情况下 查看 z 轴标签或解决此问题的其他方法 这是我的代码 mask1 mask2 mask3 形状为 10
  • 导入错误:无法导入名称“transpose_shape”

    我正在学习 Coursera Andrew Ng 的深度学习课程 使用 YOLO 算法进行对象检测 我尝试使用 Windows 和 Anaconda Navigator 在我的 PC 上运行该算法 我安装了 Keras 以在 TensorF
  • Eclipse:删除无法加载的插件

    每当我启动 Eclipse 副本时 都会收到以下错误消息 我对这些插件不感兴趣 无论如何我都不能使用 Java 8 因为我不会让你厌烦 所以安装它们是没有意义的 我进入 帮助 gt 安装详细信息 菜单 正如 SO 上的各种帖子中所建议的那样
  • 在 Android Studio MacOS 中清理项目时出现“ninja”错误

    我在 macos mojave 中使用 Android Studio 3 5 我有一个项目 在一个文件夹中包含 java 和 ndk 代码 我们称之为 project folder A 我复制了这个文件夹 将其重命名为 project fo
  • 将脚本库应用于时间轴

    这是我之前问题的后续 如果这个问题太复杂而无法在这里回答 我深表歉意 我试图能够在时间线视图中显示我的数据 我在这里找到了谷歌的时间线脚本 https developers google com chart interactive docs
  • 检查lua中是否存在目录?

    如何检查 lua 中是否存在目录 如果可能的话最好不使用 LuaFileSystem 模块 尝试做类似以下 python 行的事情 os path isdir path 这是一种在 Unix 和 Windows 上都适用的方式 无需任何外部
  • 从字符串中删除转义序列 '\' 以将其转换为 XmlDocument

    我有一个返回 struct 对象的 Web 服务 因此我得到以下 XML 字符串形式的响应 现在我需要将其加载到 XmlDocument 对象中 但如何删除字符串中的转义序列 每个 的 都会导致错误
  • AVPlayer - UILabel 在视频上不可见

    NSString urlPath NSURL videoUrl urlPath NSBundle mainBundle pathForResource fogLoop ofType mp4 videoUrl NSURL fileURLWit
  • Firebase 聚合属性值,无需获取所有相关文档

    我有以下 firebase 结构 company1 name Company One invoices invoice1 amount 300 currency EUR timestamp 1572608088 invoice2 amoun
  • 子类化 UICollectionViewCell 导致永远不会被选择

    我尝试对 UICollectionViewCell 进行子类化并从 nib 文件加载 id initWithFrame CGRect frame self super initWithFrame frame if self NSArray