1

我有一个带有原型表格单元格的 UITableView,我有一个 UIImageView 一个 UILabel 和 2 个 Buttons 对象,它们从具有不同标签(即 100,200,300)的单元格上的 UIButton 继承,我使用 IB 创建了它。我使用 dequeueReusableCellWithIdentifier 来获取 cellForRowAtIndexPath 中的单元格,它总是返回一个单元格。

第一次 cellForRowAtIndex 路径运行 [cell viewWithTag:TAG] 为每个 UI 元素返回正确的对象,但是在第二次运行时(当我滚动一点时),除了两个为 nil 的 UIButton 对象之外,所有对象都正确返回。(在调试器中,它们的地址全为零)。

我不知道是什么原因造成的,因为我所有的其他表格视图都使用类似的代码。

更新:如果我为 cellForRow 中的按钮设置类型 ID,它们不是零,但是当我悬停时,对象显示为 (UIButton *)。但是,如果我在 [cell ViewWithTag:Button1Tag] 之后有任何代码将消息发送到 id 对象,则它变为 nil。很奇怪。

4

1 回答 1

0

好的,我最终在 XCode 中使用GDB(这很棒)使用recursiveDescription来查看 Cell 内部。它表明我的标签已经消失,然后我意识到我正在将标签设置在 cellForRow 上以保存该行,覆盖原来的 IB 集标签。

于 2012-09-15T09:26:38.217 回答