在不同数组中添加不同部分的选定单元格,UICollectionView

2023-12-22

我想添加选定的单元格UICollectionView在数组中,按部分划分在不同的数组中,意味着每个部分有不同的数组。问题是部分的数量是动态的。下面是我的代码。

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *seatV;
    int cs;

    NSString *secVal = [arrSeatSel objectAtIndex:indexPath.section];
    NSArray *arrSplit = [secVal componentsSeparatedByString:@":"];
    seatV = [arrSplit objectAtIndex:1];
    cs = [seatV integerValue];

    int v;
    NSString *cnt = [NSString stringWithFormat:@"%@",[arrTot objectAtIndex:indexPath.section]];
    v = [cnt intValue];

    NSString *sect = [NSString stringWithFormat:@"%d", indexPath.section];

    if(indexPath.item < v)
    {
        if([sectionInfo count] < cs)
        {
            itemPaths = [self.collectionView indexPathsForSelectedItems];

            sectionInfo = [NSMutableArray arrayWithArray: [self.collectionView indexPathsForSelectedItems]];
            [selectedItemsInfo setObject:sectionInfo forKey:sect];
            cell=[self.collectionView cellForItemAtIndexPath:indexPath];
            cell.contentView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yellow_seat.png"]];                    
        }

        else
        {                       
            [self.collectionView deselectItemAtIndexPath:[NSIndexPath indexPathForItem:indexPath.row inSection:indexPath.section] animated:YES];

            [sectionInfo removeAllObjects];
        }

        [self.collectionView deselectItemAtIndexPath:[NSIndexPath indexPathForItem:indexPath.row inSection:indexPath.section] animated:YES];
    }

    NSLog(@"section array:%@", sectionInfo);
    NSLog(@"section array1:%@", sectionInfo1);
    NSLog(@"selected seats dict:%@", selectedItemsInfo);
}

数组arrSeatSel正在获取部分的数量以及每个部分可以选择的座位数量。

description of arr seatsel:(
 "Family:2",
 "Gold:3"
)

这里的部分是 2 个,可以选择的单元格是 2 个。其他部分和所有情况下都是类似的。

arrTot正在获取每个部分中的单元格总数

description of arrTot(
    10,
    10
)

array arrLevels是部分的数量。数组 itemPaths 正在添加选定的单元格,这里的问题是,无论哪个部分都在添加选定的单元格,但每个部分都有自己的选择单元格限制。希望您明白我的意思,如果有任何不清楚的地方,请随意询问。 简而言之,我告诉你这里发生的事情是,有不同级别的座位图,级别1、级别2等。对于每个级别,你可以选择有限的座位,然后需要将不同级别的选定座位添加到不同的数组中。


使用字典来存储详细信息。节号成为键并存储每个键对应的选定项的数组

这是大纲

 NSDictionary 
     Key:section0  value: array of selected items in section0
     Key:section1  value: array of selected items in section1  

Code

 //Create a dictionary first 
 NSMutableDictionary *selectedItemsInfo = [NSMutableDictionary new];

// During selection
NSMutableArray *sectionInfo = [selectedItemsInfo objectForKey:indexPath.section];
if (sectionInfo == nil) {
     NSMutableArray *array = [NSMutableArray array]
    [array addObject: ] // add selected item
    [selectedItemsInfo setObject:array forKey:indexPath.section];

}
else
{
    [sectionInfo addObject: ]  // add selected item
}

Edit (来自讨论的 Imp 代码)

 // Follow the below pattern
 NSMutableArray *sectionInfo = [selectedItemsInfo objectForKey: [NSNumber numberWithInt:indexPath.section]]; 

if (sectionInfo == nil) { 
     NSMutableArray *array = [NSMutableArray array]; 
     [array addObject: indexPath]; // add selected item 
     [selectedItemsInfo setObject:array forKey:[NSNumber numberWithInt:indexPath.section]]; 

  } 
  else 
  { 
      // check the count 
     if([sectionInfo count] < cs) 
     { 

      [sectionInfo addObject: indexPath]; // add selected item 
     } 
     else 
     { 
       // No need to add the item. Deselect the cell 
     } 
  }


  // To remove an item  
  sectionInfo = [selectedItemsInfo objectForKey: [NSNumber numberWithInt:indexPath.section]];
  [sectionInfo removeObject:indexPath]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在不同数组中添加不同部分的选定单元格,UICollectionView 的相关文章

  • XMPPFramework - 如何创建多用户聊天室?

    我如何使用XMPPFramework在iPhone中实现GroupChat 我尝试了以下代码 但房间没有创建 我如何知道房间是否创建 XMPPRoomDelegate没有被调用 当Stream断开连接时 调用handleDidLeaveRo
  • 将永久字符添加到 UITextField

    有没有办法将字母永久添加到 UITextField 中 用户无法删除它 我想添加一个字符 用户无法删除它 但他们仍然可以在之后添加字母 Cheers 附注这是适用于 iOS 的 A UITextField有一个名为 应该更改范围内的字符 的
  • 本地化现有的 iOS 应用程序

    我不敢相信以前没有人问过这个问题 要么是我的编码实践太无组织性 要么是我没有使用正确的关键字 How can I localize an existing iOS app that does not use NSLocalizedStrin
  • Parse.com 从相关 PFObject 获取 PFUser

    我正在将照片保存为 PFObject 解析 并使用 PFUser currentUser 用户 ID 作为其键之一 我想在表格视图中显示照片以及该 PFUser 的详细信息 但是当我尝试获取用户时 PFUser user self phot
  • 如何知道我的应用程序使用了多少 iCloud 空间?

    有没有办法查看我的应用程序正在备份到 iCloud 的内容以及它消耗了多少内存 Settings gt iCloud gt Storage Backup gt Manage Storage将显示正在备份的总计内容 iOS 会备份位于应用程序
  • 如何使用 NSUserDefaults 在 Swift 中存储自定义类的数组?

    我有一个名为的自定义类Person当某人输入信息时 它会存储有关某人的各种属性 class Person Person dictionary variable var name String var age String var html
  • 持久化 UINavigationItem 的 rightBarButtonItem 属性

    这可能是一个愚蠢的问题 但是有可能保持正确的吗 UIBarButtonItem跨由一个管理的多个视图UINavigationController 我的一系列观点通常具有相同的权利UIBarButtonItem 但是当我将新视图推送到我的UI
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • 导入 RNCryptor 后架构 armv7 的未定义符号

    我导入了 RNCryptor 可以在这里找到 https github com rnapier RNCryptor https github com rnapier RNCryptor进入我的应用程序 但是 我在日志中收到了三个错误 Und
  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 当地图视图只是屏幕的一部分时,如何在 iOS 模拟器中进行捏合?

    我在 iPad 上有一个视图 我正在添加MKMapView也就是说 全屏高度的一半 然而 当我尝试在 iOS 模拟器上进行捏合时 它不起作用 因为 to nubs 填充了模拟器上的整个 iPad 视图 And so with the map
  • 在 Swift 中从 UIScrollView 创建 PDF 文件

    我想从 UIScrollView 的内容创建一个 PDF 文件 func createPdfFromView aView UIView saveToDocumentsWithFileName fileName String let pdfD
  • 更改组织以使用 Xcode 9 在 iTunes Connect 上上传二进制文件

    我在 Xcode9 上配置了多个团队 当我尝试将二进制文件上传到 Xcode 9 上的 iTunes Connect 时 没有更改团队的选项 并且出现以下错误 ERROR ITMS 4088 来自苹果开发者论坛的解决方案 1 正常存档2 窗
  • 如何使用AudioKit保存音频文件?

    我有音频文件 我给它做了一些效果 let pitchshifter AKPitchShifter self audioPlayer pitchshifter shift 10 AudioKit output pitchshifter 如果我
  • 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用来禁用弱密码

    我正在尝试禁用一些密码 弱 例如单个 DES 单个 DES 40 位等 我尝试过使用这段代码在 Cocoa 中使用 CFSocket CFStream 时如何设置 SSL 密码 https stackoverflow com questio
  • 减少 CoreData 的调试输出?

    我正在开发一个使用 CoreData 的 iOS macOS 项目 它工作正常 但它会向控制台输出大量调试信息 这使得控制台无法使用 因为我的打印语句隐藏在所有与 CoreData 相关的内容中 我有一个非常简单的 CoreData 设置
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • 在 iPhone 中缝合图片

    我想并排缝合2张png 在Cocoa中 我会使用 NSImage initWithSize 然后只是drawInRect 但是 UIImage 没有 initWithSize 类 我现在该怎么做 Use UIGraphicsBeginIma
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个

随机推荐

  • 将变量值从 javascript 传递到 JSP

    我有以下场景
  • Azure Blob 存储容器有文件数量限制吗?

    正如问题提到的 Azure存储帐户中的每个容器是否有存储的文件数量限制 或者我们可以在每个容器中存储无限数量的文件 只要存储帐户下仍有可用空间 有什么官方文档可以参考吗 只要存储帐户下仍有可用空间 您就可以在每个容器中存储无限数量的文件 存
  • 如何在 PyQt5 Python 中根据窗口大小调整 PyQt5 堆叠小部件的大小?

    我正在设计一个ui in qt desginer 我必须创建一个用户界面 其中有一个带有按钮的侧面菜单栏 无论按下哪个按钮 其相应的数据都会显示在右侧 为了设计这个 我放置了两个QFrame in horizontal layout在中央小
  • ember-simple-auth deferReadiness 直到用户加载

    我正在使用 ember cli simple auth 并扩展了会话对象以包含从 me端点 但是 当重新加载页面并且用户登录时 会出现延迟 直到加载登录的用户信息为止 我想推迟应用程序准备就绪 直到检索到用户 我有这个在custom ses
  • 如何使用 Nvidia Visual Profile 和 Matlab 来分析 CUDA

    我需要从 Matlab 分析我的 CUDA 代码 我已经将一些 matlab 代码转换为 CUDA 以提高性能 我通过调用调用 CUDA 的 mexFunction 来完成此操作 matlab feval 函数没有提供足够的控制 我可以通过
  • Eclipse 关于 Java 中私有静态嵌套类的合成访问器的警告?

    我的同事建议使一些 Eclipse 代码格式和警告设置更加严格 大多数这些更改都是有意义的 但我在 Java 中收到了一个奇怪的警告 这是一些重现 问题 的测试代码 package com example bugs public class
  • Python 根据字典中的值绘制图表

    我有一本看起来像这样的字典 test 1092268 81 90 524292 80 80 892456 88 88 现在我想从这本字典中绘制一个简单的图 如下所示 test 1092268 x y 524292 x y 892456 x
  • JFrame 接近后台并听按键

    Working on a new personal project with jframe questions tagged jframe My goal is to close the frame in an ActionListener
  • 对 eval() 的调用被 CSP 使用 Selenium IDE 阻止

    我开发了一个硒测试Selenium IDE 我在这个套件中有一个步骤 应该在文本字段中输入一个值 它在该步骤失败并给出以下错误 18 click on id firstName Failed 11 12 59 call to eval bl
  • C 中的二维数组初始化

    我知道这是一个老栗子 但我想要在我的代码中静态分配一个小的二维数组 我知道做到这一点的方法是 static int A 3 2 1 2 3 4 5 6 没关系 我可以访问它的所有成员 但是 我在将其传递给函数时遇到了几个问题 例如 void
  • 为什么“VolatileQualifiedExpr + VolatileQualifiedExpr”在C中不一定是UB,而在C++中却不一定是UB?

    当我今天读 C 标准时 它提到了副作用 访问易失性对象 修改对象 修改文件或调用函数 这些操作中的任何一个都是副作用 C 标准说 访问由易失性泛左值 3 10 指定的对象 修改对象 调用库 I O 函数或调用执行任何这些操作的函数都是副作用
  • Elastic beanstalk 上的 wsgi 用户权限

    我正在使用弹性豆茎和 django 我的requirements txt 文件中的一个依赖项有一些在最初导入时执行的设置 设置的一部分是检查目录是否存在 否则创建它 我收到权限错误 因为用户 我假设是 wsgi 没有创建目录的权限 OSEr
  • Python 中的快速简单的文件对话框?

    我有一个简单的脚本 它解析文件并将其内容加载到数据库中 我不需要 UI 但现在我提示用户使用以下命令解析文件raw input这是最不友好的 特别是因为用户无法复制 粘贴路径 我想要一种快速简便的方法来向用户呈现文件选择对话框 他们可以选择
  • ExpandableListView 组项上的 Android LongClickListener

    我在本教程的帮助下创建了一个 ExpandableListView link http blog csdn net avenleft article details 7192972 我或多或少地理解了代码 并尝试在组上设置一个 longcl
  • 如何知道事务方案何时可序列化?

    我正在研究SQL 需要知道某个事务方案是否可序列化 我理解确定这一点的方法是制作一个以事务作为节点和节点之间的方向的图 如果该图是循环的 则该方案不可序列化 但这是什么意思以及什么决定了图中是否存在从一笔交易到另一笔交易的有向边 在这种情况
  • USE_CREDENTIALS 在新的 Android M API 中不可用

    在尝试新的权限 API 时 值得注意的是 ActivityCompat checkSelfPermission ActivityCompat shouldShowRequestPermissionRationale ActivityComp
  • 从 C 创建一个实现 __dict__ 的 Python 类型?

    如何创建一个类型以具有 dict 按照 正常 类的说法 它是在 Python 中定义的吗 是否有任何非动态类型的示例 dict s 通过 Python 定义类型通过 有一个tp dict成员PyTypeObject 但我找不到有关如何使用它
  • 如何在根视图中隐藏导航控制器?

    请帮助我在根视图中隐藏导航控制器 我找到了写的解决方案 navigationController setNavigationBarHidden YES 在我需要的每个视图控制器中 好吧 它可以工作 但只是第一次 我运行应用程序 在根视图中我
  • JMSTemplate 检查主题是否存在并获取订阅者数量

    我一直在寻找一些文档 示例来检查动态创建的主题是否存在 如果存在 如何获取该主题的订阅者计数 我使用以下代码向主题发送消息 jmsTemplate send destination new MessageCreator Override p
  • 在不同数组中添加不同部分的选定单元格,UICollectionView

    我想添加选定的单元格UICollectionView在数组中 按部分划分在不同的数组中 意味着每个部分有不同的数组 问题是部分的数量是动态的 下面是我的代码 void collectionView UICollectionView coll