问题标签 [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 投票
0 回答
318 浏览

ios - 在表格视图中管理固定单元格的适当方法

我有一个分组样式的 UITableView,旨在显示固定数量的部分,每个部分又具有一组固定的单元格,类似于设置应用程序。一些单元格是自定义的并且它们之间是不同的:其中一些有一个文本字段,另一个有一个开关,另一个有一个按钮。我也有UITableViewCellStyleDefault细胞。

自定义单元格是从文件中加载的nib,我已经strong为整个表格视图中的每个单元格定义了一个属性。我的cellForRowAtIndexPath:方法如下所示:

对于自定义单元格,我还在他们的nib文件中将重用标识符设置为“单元格”。当您事先知道代表表单或菜单(如设置应用程序)的表格的单元格集时,这是正确的方法吗?所有单元格的重用标识符是否相同,或者每个不同的单元格是否应该具有其唯一标识符?

谢谢!

0 投票
1 回答
1235 浏览

ios - UITableView 中的重用问题

我有覆盖整个屏幕(480px)的 UITableView。

每个单元格的高度为 300 像素。

我总共有 5 行。

下面是我使用的代码。

现在,当我运行此代码时,我期望每个单元格都必须B - 1编写B - 5。然而之后B - 3,我看到的只是B - 1B- 2

NSLog 如下所示。

现在,当我完全向下滚动时,我得到 NSLog 如下。

现在,当标签和文本设置正确时,为什么我看到最后两个按钮为 B-1 和 B-2 而不是 B-4 和 B-5。

知道如何解决这个问题吗?

截图 1

在此处输入图像描述

截图 2

在此处输入图像描述

截图 3

在此处输入图像描述


知道如何解决这个问题,以便我写 B-1 到 B-5 吗?


注意:如果我将单元格的高度降低到 100,我会看到所有按钮文本为 B-1 到 B-5。

这个问题与我的旧问题有关,但这是一个更简单的版本。

示例项目


我所做的是,没有使用标签并使用accessibilityValue,我正在获取按钮单击的ID。

0 投票
2 回答
3386 浏览

ios - 正确子类化和重用 UITableViewHeaderFooterView

我有一个 UITableView,其中有部分标题,可以点击以展开或折叠该部分。在我的特定示例中,每个部分只有一行,可见(部分展开)或隐藏(部分折叠)。作为部分标题,我使用自定义 UITableViewHeaderFooterView - HeaderAccountView。我在 Interface Builder 创建了 *.xib 文件,并将其自定义类设置为我的 HeaderAccountView (仍在 IB 字段中)。

init在我的 HeaderAccountView.h 和 HeaderAccountView.m 文件中,方法或类似的东西没有任何更改 - 只有一些功能可以突出显示自我(选定部分)等。

在我的主 ViewController .m 文件中

进而

当我运行项目时,一切正常 - 部分加载了所需的数据,当部分收到点击时 - 它突出显示(如标准单元格)。

但是,当我将表格视图滚动到底部时,例如从选定的突出显示部分,并且这个突出显示的部分已经在视图中不可见 - 刚刚从底部出现的那个部分 - 已经突出显示!

我知道这是因为它创建了我的 HeaderAccountView 的新实例,其属性BOOL selected设置为 YES。

但我是objective-c(和编码)的新手,不明白如何纠正这个问题。

我尝试prepareForReuse像这样使用我的自定义 UITableViewHeaderFooterView 的方法

它工作得更好 - 但现在我有另一个问题 - 当我回到我的第一个(真正)选择和突出显示的部分时 - 它显然没有突出显示。

感谢您的帮助,如果是基本问题,我们深表歉意。

0 投票
2 回答
1325 浏览

iphone - UITableView 的最佳实践与不同类型的 UITableViewCell

她是我们需要做的:

  • tableView核心数据的数据源。
  • 一个包含 5 种不同类型的自定义 tableViewCell 的 tableView。
  • 每个 tableViewCell 都与其他的完全不同。
  • 一些 tableViewCell 会有一个progressBar。

我们有 3 个解决方案:

  1. 使用具有唯一重用标识符的唯一 tableViewCell。
  2. 使用具有 5 个重用标识符的唯一 tableViewCell。
  3. 使用 5 个 tableViewCell 和 5 个重用标识符。

我们测试了第一种解决方案,在 iphone 5/iphone 4S 中没问题,但在 iphone 4 中它很慢(我们也需要支持 3GS ......)。

问题:哪种解决方案会更好?或者,如果您有其他解决方案,那就太好了。

好处:你能解释一下重用标识符是如何工作的(请详细说明:)),比如第一个单元何时被分配,它们何时被重用(使用 1 和不同的重用标识符),它们何时被解除分配......?

谢谢你。

0 投票
0 回答
814 浏览

ios - Update UILabel-Subview of MKAnnotationview

I have a MapView with cluster annotations (ADMapCluster). I want to show the amount of elements in the Cluster, therefor I'm adding a UILabel to the MKAnnotationView as a Subview.

My Problem is that when I reuse the MKAnnotationView after zooming or similar actions the UILabel doesn't update the text.

}

Any idea what I'm doing wrong and why the labels don't get updated?

0 投票
1 回答
62 浏览

ios - tableviewcell 中的数据重复

大家好,就像上面一样,我正在填写表格视图。但是在某些值之后,相同的值会重复。可能是什么问题?

提前致谢

0 投票
2 回答
136 浏览

ios - iOS 表格视图单元格未显示预期行为

昨天我问了一个关于单元格没有正确显示取决于字符串值的按钮的问题。如果需要,请看一下:带有核心数据的表格视图的奇怪行为

用户@jrturton 在他的回答中指出以下内容:

重复使用的单元格每次都会添加子视图 - 因此可能会有许多紧急视图相互叠加。单元格应该只添加一次并将其保存在属性中

我认为这个答案标志着我必须遵循以解决我的问题的正确方向,但我无法将答案实施到我的代码中,如下所示:

单元格的行为必须如下:

当前行为如下:

此行为仅在单元格至少更改一次其 isUrgent 值时发生。

我需要您的帮助来实施上述答案。谢谢你。

0 投票
1 回答
1200 浏览

objective-c - 在 Mac 应用程序中重用表格视图单元格

我目前正在尝试将我的 iOS 应用程序转换到 Mac 上,因此我想复制 iOS 版本中的一些行为。在移动应用程序中,我使用关于内容和高度的动态表格视图行,当我设置必须显示的数据时,我调整了单元格包含的视图的框架。

例如:

我启动一个高度为 100 的单元格,然后,对于另一个单元格,我将自定义高度属性重置为 60,更改该单元格表示的数据对象,并调整其包含的视图,使其适合调整后的高度。

但是,在 Mac 上,它似乎并没有像预期的那样工作。细胞的初始化似乎工作正常,但一旦细胞被重用,一切似乎都失控了。

这是我的代码:

MyCustomTableCellView数据属性的设置器:

如您所见,someLabel的文本(在我的情况下)是可变的,我希望它适应单元格的尺寸。我可以确认这仅在一个单元被重用时才会发生

初始化结果:

重用结果:

0 投票
1 回答
400 浏览

ios - UICollectionViewCell 重用问题

我有一个故事板,我的一个 viewController 有一个 CollectionView。我有一个原型单元格,里面有一个标签。我为该原型单元创建了一个类,以便通过 IBOutlet 属性访问标签。

问题是我有很多细胞。在initWithCoder单元格的构造函数中,我添加了一些cornerRadius.

当我将这个 viewController 推到屏幕上时,它会滞后很多。如果没有拐角半径,则不会。我还注意到initWithCoder,对于每个单元格,它一直被调用。

我试图像这样注册单元格,[self.myCollectionView registerClass:[MyCell class] forReuseIdentifier:@"MyReuseIdentifier"]但它不起作用。我不知道如何使用该registerNib方法。

重用标识符在情节提要原型单元中设置。

我不知道如何在不损失性能的情况下实现圆角效果。

0 投票
1 回答
798 浏览

objective-c - 在 UICollectionViewCell 中使用多个标识符

我想在 UICollectionViewCell 中使用多个标识符。

但似乎我只能为 CollectionView 设置一个重用标识符。


它确实只使用一个标识符,但是当我像这样使用不同的标识符时,它会给出错误消息。

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法使类型视图出列:带有标识符 CollectionViewCell 的 UICollectionElementKindCell - 必须为标识符注册一个 nib 或一个类或连接情节提要中的原型单元格”

如何在 UICollectionViewCell 中设置多个标识符?

我想同时显示多个自定义单元格。
每个单元格都有 UIScrollView 和 UIPageControl。
除非我可以设置不同的标识符,否则实例将被重用于新单元格,并且 UIPageControl 不会因每个 UIScrollView 中的移动而做出反应。