问题标签 [reuseidentifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1379 浏览

ios - 表视图出列可重用单元格重叠

我有一个自定义表格视图单元格类。我动态地创建 uiviews 和 uilabels 和 uiimageview 到单元格和分配并使用 frame.contentView 初始化它们。但是在滚动时,由于重用,它们会重叠,标签的文本和其他属性也会重叠。

0 投票
2 回答
53 浏览

objective-c - 重用自定义 UITableViewCells,在新图片加载前简要查看旧 UIView 图片

我有一个包含 UIView 的自定义 UITableViewCell,我在其中显示了几张图片。

在我的 tableView:cellForRowAtIndexPath: 函数中,我调用 dequeueReusableCellWithIdentifier: 来重用旧的自定义单元格,然后用新图片更新它们。

问题是当我在屏幕上快速滚动时,我会在加载新图片之前看到旧图片闪烁,这很不吸引人。

我试图通过以下方式解决此问题:

  • 在自定义 TableViewCell 实现文件中实现 prepareForReuse;这导致相同的三个 UIView 一遍又一遍地出现,在这种情况下,新图片完全停止加载
  • 在调用 dequeueReusableCellWithIdentifier 后立即清除 UIView,方法是使用 for 循环删除所有子视图;该应用程序现在需要很长时间才能加载图片。

解决此问题的最佳方法是什么,为什么在我尝试的修复中会出现上述错误?这是我当前的代码:

0 投票
1 回答
110 浏览

ios - 显示两个不同的注释图像

我想根据特定的“链”变量显示 2 种不同类型的注释......我该怎么做呢?这是我现在拥有的代码片段:

谢谢!

0 投票
3 回答
1088 浏览

ios - 单元格的进度条在其他单元格上重复

我有一个细胞重用问题。

我所有的细胞都是一样的,只有一个部分。单元格包括标签、按钮和进度条。

该按钮触发声音(这是一个简单的“播放”按钮)。当调用 AVAudioPlayers 委托方法时audioPlayerDidFinishPlaying:,我取消了NSTimer更新进度条的方法,隐藏了进度条,也取消了音频播放器。

所有这一切都发生在我的单元格的类中,该类继承自UITableViewCell.

一切都像它应该的那样工作,除了一件事:

在播放声音时滚动会在新单元格上显示相同的进度条。

因此,如果我点击第二个单元格,滚动时显示的第二个下一个单元格将有一个向前移动的进度条(并在声音结束时停止+隐藏)。

我将向您展示我的自定义单元完整课程,希望这会有所帮助。我真的不知道如何解决这个问题。我尝试了 if 语句,cellForRow:但没有任何真正的成功。

表视图。pushList是一个包含文件 URL 的数组

我能做到的最好的办法是在进度条看不见时隐藏它,因此也不会显示其他进度条,但是重新滚动到我的播放单元格时会发出没有进度条的声音,这是不令人满意/不好的用户体验行为。

0 投票
1 回答
26 浏览

uitableview - Xcode 添加新 TableView 单元格添加新单元格但显示已删除单元格的文本字段

我有一个显示单元格的表格视图。必须使用切换按钮删除其中一些单元格,然后添加一些单元格。

所以我的第三部分有 4 个单元格。它们的标题按升序排列如下:相同?、开始、结束、持续时间。我列表中的第二个和第三个单元格有文本字段,accesoryViews当切换按钮(在顶部单元格中)关闭时,这些字段都会被删除。所以这给我留下了2个细胞:一样吗?和我第三部分的持续时间。

如果我按下一个按钮,它会将 2 个单元格添加到同一部分(第 3 节),但由于某种原因,它们具有已删除的 2 个单元格中的文本字段作为其附件视图。

我的代码如下:

当按钮被切换时,我调用:

此代码成功删除了 2 个中间单元格。

当我使用以下方法在剩余 2 个下方添加 2 个新单元格时:

它成功地添加了下面的 2 个新单元格,但它们的机器人中有文本字段。

我运行应用程序时的唯一输出是:log 和 log2。

我很混乱。

0 投票
5 回答
1058 浏览

ios - TableView 单元格重用导致按钮标题在滚动时更改

我有一个显示名称和标题为“关注”的按钮的列表。当我点击按钮标题应更改为“取消关注”。如果我再次点击按钮,标题应再次更改为“关注”。这工作正常,但是当我滚动表格时,其他单元格的标题也会由于单元格重用而发生变化。

代码如下:

请提出一些建议以防止细胞重复使用。

0 投票
1 回答
87 浏览

ios - 从 UITableView 中删除多个选择会在滚动后引发异常(重用问题?)

我正在尝试从表格视图中删除多个选择。一切正常,直到我向上或向下滚动,然后它崩溃并引发异常。

对象不能为零

这就是我删除对象的方式:

同样,这一切都很好,除非我向上/向下滚动以选择/取消选择更多单元格,所以我将单元格子类化,因为我读到不会在 SO 上重用单元格。

以供参考:

我试过用静态单元和没有。我已经尝试将 dequeueReusableCellWithIdentifier 设置为静态单元格并且没有。滚动时都不起作用

错误日志:


编辑 所以在尝试了其他人告诉我的事情之后,我做了以下事情:

设置异常断点。崩溃后填充的行是该[stringsOfObjects addObject:cell.textLabel.text];行。

我已经确保我的cellForRowAtIndexPath方法现在设置正确:

在那之后,我在将对象添加到 NSMutableArray 时仍然会崩溃,所以我查看了调试器并确保我的 UITableViewCell 不像机器人提到的那样为零,看起来确实如此,但我不知道该去哪里从这里开始:因为在我看来它不是零

图像1

如您所见,我选择了 6 行,但它只添加了 2 个对象。我不知道为什么这如此困难,为什么有些人没有,为什么它为零?为什么我可以很好地删除它们而无需滚动选择更多?

0 投票
2 回答
67 浏览

ios - 不同部分的自定义 TableCells 中的重复内容

我有一个*UITableView显示一段时间内的事件,某种日历。每个部分都是一周中的一天,每个事件都是自定义 *UITableViewCell的。这些事件在一个*NSArray中,并且根据它们的日期和时间,这些事件被分配到表的一个部分。

部分中的行数很好,但是当显示单元格时,其中一些开始在其他部分的其他单元格中重复其内容,从而覆盖其信息。此外,此单元格具有指定的颜色,并且在didSelectRowAtIndexPath单击时其背景更改为该颜色的方法,但与上述相同,其他部分的其他单元格也会更新其背景颜色。

我认为这与细胞重用有些相关,但我找不到我做错了什么。

PD:我是 iOS 新手,所以请随时询问更多代码、纠正我等。感谢您的建议。

这是我如何为部分中的行进行计算

正在发生的事情的一些图像:

第 1 天 星期一

第 2 天 星期二

0 投票
2 回答
540 浏览

ios - 滚动期间缺少表格视图内容

我正在使用表格视图单元格并在单击单元格中的按钮时添加一个弹出视图。但是当我滚动表格视图视图时,弹出窗口正在从我的单元格中消失。这是我的代码:

按钮动作:

0 投票
2 回答
421 浏览

ios - 第四个 UITableViewCell 重用第一个单元格的高度

我有一个从 Parse 检索图像的 TableView。图像纵横比各不相同。我进行了设置,以便更改图像的宽度以匹配用户设备的宽度,并且调整高度以匹配纵横比。

我的问题是,每当我运行应用程序时,前三个单元格运行良好,但第四个单元格只取第一个单元格的高度,因此图像具有信箱效果。与第五个和第六个单元格相同,依此类推(第五个取第二个高度,第六个取第三个高度,第七个取第四个高度,其高度与第一个高度相同,依此类推)。

解决此问题的最佳方法是什么?

如果您需要查看更多代码,请告诉我。我不确定其他是否相关。

表视图控制器