UICollectionView - 图像是随机设置的

2024-01-01

我在我的应用程序中使用collectionView。我正在 didSelect 委托中为单元格背景视图设置图像。但是当我选择一个单元格索引路径时,图像将设置为 3 个单元格索引路径。当我滚动 collectionView 时,图像会随机更改?请帮我。提前致谢。

- (void)viewDidLoad
{
    [super viewDidLoad];

    [collection registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:uio];
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:       (NSInteger)section
{
     return 50;
}

 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

    UICollectionViewCell *cell = [collection dequeueReusableCellWithReuseIdentifier:uio
 forIndexPath:indexPath];
    cell.backgroundColor = [UIColor whiteColor];
   return cell;
}

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
 {
    NSLog(@"index %@",indexPath);
    UICollectionViewCell *cell = [collection cellForItemAtIndexPath:indexPath];

    cell.backgroundView =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"download.jpg"]];

 }

那是因为你重复使用了你的细胞。一种选择是使用一个字典变量来表示您的单元格已被选择,如果尚未选择,则重置图像。

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"index %@",indexPath);
    UICollectionViewCell *cell = [collection cellForItemAtIndexPath:indexPath];

    cell.backgroundView =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"download.jpg"]];

    [selectedDictionary setObject:[NSNumber numberWithBool:YES] forKey:[NSNumber numberWithInteger:indexPath.row]];
}

然后在您的 cellForItemAtIndexPath 方法中您将检查该值

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

    UICollectionViewCell *cell = [collection dequeueReusableCellWithReuseIdentifier:uio
 forIndexPath:indexPath];
    BOOL selected = [[selectedDictionary objectForKey:[NSNumber numberWithInteger:indexPath.row]] boolValue];

    if(selected){
        cell.backgroundView =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"download.jpg"]];
    }else{
        cell.backgroundView = nil;
    }

    cell.backgroundColor = [UIColor whiteColor];
   return cell;
}

当然,如果您使用某种对象作为模型,那么在这里有一个选定的变量是合适的,您将不再需要 nsdictionary 。

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

UICollectionView - 图像是随机设置的 的相关文章

  • iOS 中如何清除特定域的 cookie?

    我已经搜索了 StackOverflow 上的几乎所有问题来寻找我的问题的答案 我还没有找到任何有用的链接或教程来说明哪种方式最好清除特定域的 cookie 如果有人可以帮助我 请 我自己找到了解决方案 如果您想删除 UIWebView 中
  • 从数组中获取随机字符串[重复]

    这个问题在这里已经有答案了 我试图从数组 firstArray 中获取随机字符串并将其打印在 UILabel label 中 我似乎无法弄清楚并且出现错误 感谢您的帮助 我尝试搜索但找不到任何最新的教程 方法 import UIKit cl
  • 检查定位服务是否开启

    我一直在对 CoreLocation 进行一些研究 最近 我遇到了一个在其他地方 但在 Objective C 和 iOS 8 中 已经讨论过的问题 我觉得问这个问题有点傻 但是如何在 iOS 9 上使用 swift 检查是否启用了位置服务
  • 是否有针对不同屏幕尺寸的单独故事板?

    基本上我已经完成了一个应用程序 我唯一的问题是 ATM 机应用程序在设计时只考虑了 4 英寸显示屏 当在 3 5 英寸模拟器上运行时 应用程序会丢失 0 5 英寸 显然 那么我的问题是 如何在 Xcode 5 中为不同的屏幕尺寸设置不同的故
  • XMPPFramework - 如何创建多用户聊天室?

    我如何使用XMPPFramework在iPhone中实现GroupChat 我尝试了以下代码 但房间没有创建 我如何知道房间是否创建 XMPPRoomDelegate没有被调用 当Stream断开连接时 调用handleDidLeaveRo
  • 修补应用内购买黑客;卡在第四步

    正如我们许多人所知 苹果最近出现了一种情况 黑客可以免费获得任何应用内购买 苹果最近发布了这个文件 http developer apple com library ios releasenotes StoreKit IAP Receipt
  • ios 用户如何取消 Facebook 登录?

    当用户到达此屏幕时 无法取消 我能做些什么 为了首先获得这个视图 我正在运行 NSMutableDictionary params NSMutableDictionary dictionaryWithObjectsAndKeys vid l
  • 从 UIImagePickerController 相机视图推送 viewController

    我正在开发一款消息应用程序 类似于 WhatsApp 用户可以互相发送文本和图像消息 当用户想要发送图像时 他可以从相机胶卷中选择一张图像 也可以用相机拍摄一张图像 这就是我介绍的方式UIImagePickerController对于这两种
  • 如何替换已弃用的方法dispatch_get_current_queue()? [复制]

    这个问题在这里已经有答案了 我正在 iOS 5 中使用 xmppframework 开发一个聊天应用程序 它工作得很好 但我将 Xcode 更新到 4 5 1 将 iOS 5 更新到 iOS 6 将 Mac OS 更新到 10 7 5 但由
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失
  • 在横向中自动调整 UITableCells 内容的大小

    在 UITableView 中 我通过 UILabels 将内容添加到单元格中 定义最佳尺寸 与单元格宽度允许的一样大 我注意到只有tableView contentSize width是可靠的 因为cell contentView bou
  • 如何使用 NSUserDefaults 在 Swift 中存储自定义类的数组?

    我有一个名为的自定义类Person当某人输入信息时 它会存储有关某人的各种属性 class Person Person dictionary variable var name String var age String var html
  • 如何使用AudioKit保存音频文件?

    我有音频文件 我给它做了一些效果 let pitchshifter AKPitchShifter self audioPlayer pitchshifter shift 10 AudioKit output pitchshifter 如果我
  • 如何接收有关与我共享的记录中所做更改的 CloudKit 通知?

    我有两个 iCloud 帐户 A and B 在两个不同的设备上 来自其中之一 A 我将 ckrecord 分享给另一个人 B 像这样 let controller UICloudSharingController controller p
  • 在 iOS 上将 NSString 转换为 NSDate 的正确方法?

    我一直在使用此方法将常规 NSString 对象转换为 NSDate 但尝试向 Apple 提交更新 但遭到拒绝 在 iOS 中还有什么其他方法可以做到这一点 NSString date str 2011 08 12T12 20 00Z N
  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • Apple Watch 预构建操作可更改故事板 customModule 引用

    我目前有一个项目 其中包含同一应用程序的 3 个不同版本 不同的品牌等 该项目运行得很好 从那时起 我添加了 3 个新的 Apple Watch 目标 每个应用程序 版本 1 个 其中 2 个引用 主 Apple Watch 目标中的文件
  • AVAssetExportSession 为零 iPhone 7 - Plus 模拟器

    AVAssetExportSession在 iPhone 6 及以下版本上运行良好 但在 iPhone 7 iPhone 7 Plus 模拟器上运行不佳 Xcode 8 0 这段代码return nil在exportSession中 当在i
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available

随机推荐

  • Jersey 服务器发送事件 - 写入断开的连接不会引发异常

    我们使用 Jersey 服务器发送事件 SSE 来允许应用程序的远程组件侦听 Jersey Tomcat 服务器引发的事件 这很好用 然而 至关重要的是我们的服务器拥有当前连接的侦听器 我们的远程组件 的准确列表 为此 我们的服务器每五秒向
  • 获取我和其中标记的朋友的照片列表的最佳方式是什么?

    我正在做这个 fql SELECT object id pid src big src big height src big width src src height src width FROM photo WHERE pid IN SE
  • 在 Web API 中缓存数据

    我需要缓存大部分静态的对象集合 每天可能会更改 1 次 这些对象在我的 ASP NET Web API OData 服务中可用 该结果集跨调用使用 意味着不是特定于客户端调用 因此需要在应用程序级别缓存 我对 Web API 中的缓存 进行
  • 在 VB asp.net 2.0 中对数据表的行进行分组

    顾名思义 我正在尝试对数据表中的行进行分组 更详细地说 除了一个字段 列 之外 该表具有相同的行 基本上我想做的是将相同行的所有不同字段放入单个字段中 同时删除其他行 这是我当前使用的语法 Dim i As Integer Dim j As
  • 附件可以位于 MIME 的嵌套多部分中吗?

    我知道多部分电子邮件的每个部分本身都可以是多部分 附件是否仅作为顶级部分添加 还是也可以在嵌套的多部分中 例如我的意思 在这里attachment1 doc是嵌套的 而attachment2 doc将是顶级部分 multipart mixe
  • Jquery - Jquery Wysiwyg 以字符串形式返回 html

    我正在使用 Jquery Wysiwyg 编辑器 并且尝试捕获构成内容区域的 html 以存储在数据库中 有没有办法获取元素的 html 并将其保存为字符串 我的代码看起来像 ul li This is a test li ul 我想要一个
  • Jasper Reports 将绝对路径更改为相对路径?

    我是 jasper 的新手 我想在 jrxml 中编译报告并从绝对路径到相对路径导出为 pdf 目前这些代码仅在绝对路径下工作 导出为 pdf 下载网络浏览器的文件夹 Reports ConsumationReport jrxml 内的 j
  • Hadoop 2.2.0 jobtracker 未启动

    看来我没有jobtracker使用 Hadoop 2 2 0 JPS没有显示 50030端口没有人监听 也没有相关日志jobtracker在 的里面logs文件夹 这是因为 YARN 的原因吗 如何配置和启动作业跟踪器 如果你使用YARN框
  • React JS 多个提交按钮react-hook-form

    我使用react hook form进行表单验证和提交 使用单个提交类型按钮一切正常 现在我需要三个按钮 保存草稿 预览页面中的数据值 和 提交审批 我可以选择退出模式选择单选按钮 但想要具有三个按钮提交功能 这需要表单数据 为输入字段添加
  • Blackberry 10:Android 运行时和 JNI

    BlackBerry 10 Android Runtime 是否支持 JNI 我想在我的 android 应用程序中执行本机 c 代码 我想将其部署在黑莓 10 操作系统上 在我的 android 应用程序中 我使用 JNI 来处理从本机
  • 带引导程序的幻灯片放映

    我尝试用引导程序制作幻灯片 以便您滑动浏览图像 但图像没有显示 仅显示下一个和上一个按钮 我正在使用 asp net mvc5 这是jquery document ready function myModal myModal row img
  • 对 PixelFormat 感到困惑

    我很困惑像素格式 http developer android com reference android graphics PixelFormat html在安卓上 我的设备是摩托罗拉 Defy 我有两个问题 在安卓2 3上getWind
  • 使用 parquet 文件元数据创建 Hive 表

    我编写了一个 DataFrame 作为镶木地板文件 而且 我想使用镶木地板中的元数据使用 Hive 读取文件 写入 parquet write 的输出 common metadata part r 00000 0def6ca1 0f54 4
  • 连接由 V-USB 库供电的 libUSB 设备用于 AVR

    我写了一个简单的程序 基于下列的 http codeandlife com 2012 01 22 avr attiny usb tutorial part 1 教程 通过 USB 端口将数据从 AVR 芯片 Attiny 2313 发送到计
  • Node.js 多进程日志记录

    我现在正在做一个基于集群的node js项目 我陷入了日志记录的困境 经过一番研究后 我找到了一个解决方案 就这个 我不知道这是否是一个好主意 想法是这样的 只有master进程可以写入日志文件 如果当前进程是worker 那么它会向mas
  • LINQ 标识函数

    只是关于 LINQ 语法的一点小问题 我正在压平一个IEnumerable
  • PHP OCI、Oracle 和默认数字格式

    当我使用 PHP OCI 从 Oracle 数据库执行提取时 小于 1 的数字显示为 XXXXXX e g 249999 有没有办法将其设置为0 XXXXXX或任何其他格式 无需修改每个要使用的查询to char 明确地 也许通过一些会话参
  • asp .net 2.0 上的最大查询字符串长度

    我正在研究 ASP NET 版本 2 0 和 IIS 6 我通过调用其 URL 并向其传递查询字符串来从主页调用弹出的 aspx 页面 对于特定情况 我的查询字符串的长度超过 2000 个字符 因此 弹出屏幕第一次打开时效果很好 但每当该弹
  • 当有超过 n 个查询时,如何记录“show processlist”?

    我们的 mysql 进程有时会积压并且进程开始排队 我想通过在缓慢的时间记录进程列表来调试发生这种情况的时间和原因 我想跑show full processlist 通过 cron 作业并将输出保存到文本文件 如果有多个 50返回行 你能为
  • UICollectionView - 图像是随机设置的

    我在我的应用程序中使用collectionView 我正在 didSelect 委托中为单元格背景视图设置图像 但是当我选择一个单元格索引路径时 图像将设置为 3 个单元格索引路径 当我滚动 collectionView 时 图像会随机更改