【问题标题】:How to create a Prototype cell in a Dynamic UITableView? [duplicate]如何在动态 UITableView 中创建原型单元格? [复制]
【发布时间】:2013-08-12 09:00:03
【问题描述】:

我用 UImageView 和 UILabel 制作了一个 Dynamic UITableViewCell。

我将项目链接到代码,构建它,它给了我这个警报:

Couldn't compile connection: <IBCocoaTouchOutletConnection:0x7ff657212ee0  <IBProxyObject: 0x7ff6572e5e30> => nationLabel => <IBUILabel: 0x7ff6572e2bd0>>

我从未使用过动态单元格,所以这可能是我的一个愚蠢错误,但我可以理解其中的原因。 我该如何解决?谢谢!

【问题讨论】:

    标签: xcode uitableview


    【解决方案1】:

    听起来您正在尝试建立从原型单元到视图控制器的出口。正如在 cmets 中提到的那样,这是行不通的,因为可能有多个电池,它们不能都连接到同一个插座。因此,您需要做的第一件事是从情节提要中删除这些插座连接。完成此操作后,代码应该可以编译。从那里你有两个选择(嗯,我敢肯定还有其他方法可以做到这一点,但这些是正常的):

    1. 在情节提要中,为每个元素的 tag 属性设置唯一值,例如制作图像 1 和标签 2。在您的视图控制器中,任何时候您需要访问元素,都可以通过调用 [self.view viewWithTag:] 来实现。

    2. 创建UITableViewCell 的自定义单元子类,将其分配给您的原型,并在原型和子类之间创建插座。

    听起来您已经尝试过 (1) 并且卡住了。如果您遇到困难,只需解释您遇到的具体问题,有人会帮助您解决问题。

    【讨论】:

    • 谢谢!我选择了第一种方法,我在 2 行中解决了,太棒了!
    • 我仍然遇到了一个我认为很容易解决的问题,但我不记得如何解决了:控制器只加载可见行,所以滚动时,它显示空白行,前一行变成空白...我写了 [tableView dequeueReusableCellWithIdentifier: @"cell" forIndexPath:indexPath] 所以它应该是别的东西......
    • 如果您看到空白行,您需要检查cellForRowAtIndexPath 中发生的情况。在该方法或一些 NSLog 语句中设置断点并查找 a) dequeueReusableCellWithIdentifier 实际上返回一个单元格 b) 您用于配置单元格的数据不是 nil
    • 单元格工作,因此 cellForRowAtIndexPath 方法运行并返回一个单元格,但启动时未显示的单元格不起作用......现在,我不知道为什么,向下滚动,它会重新充电细胞;例如:在启动控制器显示单元格 1、2、3 和 4,向下滚动他将再次显示单元格 1、2、3 和 4,同样的事情到最后......
    • 细胞被回收。您必须使用给定索引路径的数据在 cellForRowAtIndexPath 中配置它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多