UICollectionView 的单元格消失

2024-03-11

发生了什么

目前我有一个应用程序使用两个UICollectionViews里面一个UITableView。通过这种方式,我创建了一个看起来像 Pulse News 的应用程序。我的问题是,有时第 6 行和第 11 行完全消失,在本应是单元格的位置留下空白。我实际上并不介意,如果所有的细胞都是这样的(这样我就可以假设我没有正确地做事),但问题是,只是发生在那些特定的细胞上。

我的理论

第 6 行和第 11 行是我开始滚动时出现的行,因此默认情况下我能够看到 5 个单元格,当我进行第一次水平滚动时,会出现第 6 行(有时是空白)。

我拥有的

我目前唯一在做的事情是:

 [self.collectionView registerNib:[UINib nibWithNibName:CELL_NIB_NAME bundle:nil] forCellWithReuseIdentifier:CELL_IDENTIFIER];

On the viewDidLoad。关于单元格的创建:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    MyCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CELL_IDENTIFIER forIndexPath:indexPath];

    NSMutableDictionary *dictionary = [self.DataSource objectAtIndex:[indexPath row]];

    [cell buildViewWithDictionary:dictionary withReferenceParent:self.referenceViewController];

    return cell;
}

因此,据我所知,这里没有发生什么奇怪的事情。我虽然数据源(一个虚拟 JSON 文件)有问题,但有时它工作正常并且单元格显示,所以我猜从那部分来看是可以的。

所以我的“问题”:有人知道发生了什么事吗?我不太愿意说这是 iOS 的 bug,但我想不出其他的了。


Edit 1.0

令人惊奇的是这个方法

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

是从indexPath[0,4]到[0,6]而不计算[0,5]。我第一次在 iOS 中看到这种情况发生。


Edit 2.0

我已经改变了创建单元格的方式,我使用旧的方式而不是出列:

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CELL_NIB_NAME owner:self options:nil];
MyCell *cell = (MyCell *)[nib objectAtIndex:0];

还是同样的悲惨结果。


那么,什么有效呢?

1)子类UICollectionViewFlowLayout.

2)设置我的flowLayoutUICollectionView到我的新子类。

3)关于init方法UICollectionViewFlowLayout子类,设置你想要的方向:

self.scrollDirection = UICollectionViewScrollDirectionHorizontal;

就我而言,它是水平的。

4) The 重要部分:

-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
{
   return YES;
}

此时此刻,我应该稍微推理一下,但老实说我没有任何线索。

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

UICollectionView 的单元格消失 的相关文章

随机推荐

  • 在 Octave 中运行包含本地函数的简单脚本时出错

    我的文件 testtest m 如下所示 pluse 1 2 function retval pluse input1 input2 retval input1 input2 endfunction 然后我得到 error pluse un
  • 已在 C# 中调用垃圾收集委托?

    我一直在使用我发现的这个关键钩子脚本 但在我的程序中使用它几秒钟后 我仍然收到错误 该错误表示 已对垃圾收集委托 keylogger Utilities globalKeyboardHook keyboardHookProc Invoke
  • Rails:db/schema.rb 中的差异 - null:create_at/updated_at 列处为 false

    有谁知道为什么每当我跑步时rake db migrate在我的生产环境中 schema rb 文件被更改了 差异仅存在于所有模型表的created at updated at 列上 t datetime created at t datet
  • 当您有多个闹钟时取消单个闹钟

    我使用相同的pendingIntent来设置多个警报 每个警报使用不同的intentId 警报正在工作 现在我想取消一个特定的闹钟 如果我使用 cancel 方法 我最终会取消所有警报 我只想删除特定的一个 此外 即使在第二次或第三次启动期
  • 在我的代码而不是库代码中出现异常时停止

    我正在使用 Python 库开发一个应用程序urllib有时由于无法访问 URL 会出现异常情况 然而 异常在标准库堆栈中被提升了近 6 个级别 home user Workspace application main py in call
  • 功能规格和视图规格之间有什么区别吗?

    我有一个关于水豚干燥度的问题here https stackoverflow com questions 35255786 what is the correct usage of within method in capybara 352
  • DRF多对一反向查找

    我有一个返回宠物及其主人的 API 端点 每个所有者都有一个名字和一个或多个 pets 每只宠物都有一个名字和one owner Django 模型示例 class Owner models Model name models CharFi
  • 为什么控制器响应将模型字段名称设置为小写?

    在我的 NET Core 项目中 在所有控制器的响应中 对象字段均以小写形式出现在字段名称的前一个或两个字母中 iD PARAM foo cD PROM bar txT OFFICER lorem cN NEW PARAM fub iD S
  • 链接器错误,静态常量似乎没有被 odr 使用

    当您了解细节时 odr used 标准中的定义非常令人困惑 至少对我来说是这样 我通常依赖 如果引用 的非正式定义 except当左值到右值的转换可用时 对于整型常量 它们应该被视为右值 这似乎应该将其排除在引用规则之外 这是我无法链接的示
  • 如果总是与同一事物进行比较,是否有办法缩短条件?

    当我需要编写一个反复比较同一项目的条件时 我总是觉得很烦人 因为我会多次输入该项目 string x textBox1 Text if x apple x orange x banana 我想要这样的东西 但这当然不是正确的语法 if x
  • solveJsonModule 无法与 Angular 10 一起运行?

    我的全新 Angular 10 项目的资产文件夹中有一个基本的 JSON 文件 角度 CLI 10 0 1 节点 14 5 0 操作系统 win32 x64 TSC 版本 3 9 5 在我的 tsconfig json 中我有 compil
  • 从 Nib 或 Storyboard 设置 WKWebView 上的 WKWebViewConfiguration

    在 iOS 11 中 Apple 添加了在笔尖和情节提要上添加 WKWebViews 出口的功能集 使用自动设置的默认 WKWebViewConfiguration 时 它似乎工作正常 但是 我希望能够使用自定义 WKWebViewConf
  • 如何从高图表中删除“值”和“系列”?

    I m using highcharts on my website which looks great but I now want to remove these two labels from the chart 我尝试禁用各种标签
  • 如何获取google地图上的平均交通数据

    我想像这样在谷歌地图上显示平均流量层 但是 这张地图显示的是实时流量数据 而不是我想在谷歌地图上显示一段时间内的平均流量 这可能吗 或者任何其他地图 API 可以提供帮助吗 请为该问题加注星标问题跟踪器链接 https issuetrack
  • 如何在com.google.android.material.chip.Chip上设置chipText?

    我正在调查以下提供的材料成分 implementation group com google android material name material version 1 0 0 alpha3 namely com google and
  • PHP 彗星 usleep 阻塞 apache mpm?

    我那里有一颗彗星我以这种方式运行 while 循环 items statement gt fetchAll statement is a PDO Statement iteration 0 while count items 0 itera
  • 使用复制的 git 存储库安全吗?

    如果我使用以下命令复制跟踪文件夹rsync a or cp R 然后我可以像使用 git 克隆一样使用该副本吗 或者这会导致各种奇怪的问题吗 这一切都在我的计算机上运行 因此没有其他人访问该存储库 显然 git cloned 目录知道它是从
  • 动态计算 Pandas 中公式的表达式

    我想使用一个或多个数据帧列执行算术pd eval 具体来说 我想移植以下计算公式的代码 x 5 df2 D df1 A df1 B x 使用代码pd eval 使用理由pd eval是我想自动化许多工作流程 因此动态创建它们对我很有用 我的
  • 在 Linux 上以汇编形式输出整数

    这需要在纯汇编中完成 即没有库或对 C 的调用 我理解问题的本质 需要将整数除以 10 将一位数余数转换为 ASCII 输出 然后用商重复该过程 但由于某种原因 它不起作用 我在 x86 上使用 NASM 这是我到目前为止所拥有的 不输出任
  • UICollectionView 的单元格消失

    发生了什么 目前我有一个应用程序使用两个UICollectionViews里面一个UITableView 通过这种方式 我创建了一个看起来像 Pulse News 的应用程序 我的问题是 有时第 6 行和第 11 行完全消失 在本应是单元格