【问题标题】:Can't compile connection iOS5无法编译连接iOS5
【发布时间】:2012-03-30 10:02:22
【问题描述】:

在我正在为 iPhone 开发的一个应用程序上,当我要求它给我一个原型表单元格上的标签的出口时,它决定不编译。我之前已经获得了标签的出口,但我只是使用标准视图或静态单元格而不是原型单元格。我认为这可能与标签属于原型单元格并且将被复制的事实有关,因为它们都具有相同的标识符(单元格),但我又可能会离开。我不确定如何处理这个,如果我只使用cell.textLabel.text,那么我的上传按钮直到我点击单元格后才会显示。

错误:

Couldn't compile connection: <IBCocoaTouchOutletConnection:0x4007cd200  <IBProxyObject: 0x4007de280> => lblServerName2 => <IBUILabel: 0x4009b7d00>>

关于如何在单元格内的自定义标签上设置文本,有人有什么建议吗?

作为参考,我已经上传了我的项目here。目前这是一团糟,但它目前只是概念上的证明。一旦我得到它的工作,我会经历并做清理。

欢迎提出任何建议。

编辑:

This 页面提供了帮助。发布此问题后,我几乎立即找到了它。基本上,我将标签的标签设置为 100,然后在 cellForRowAtIndexPath 方法中使用此代码。

UILabel *lblServerName = (UILabel*)[cell viewWithTag:100];
lblServerName.text=[server getName];

就是这样,我的标签工作正常,我的按钮也出现了。

【问题讨论】:

  • 嗯..在我的情况下它不起作用。你用什么类型的细胞?

标签: iphone ios xcode ios5


【解决方案1】:

要更改任意 UITableViewCell 上标签中的文本,请为标签分配一个标签,然后在代码中执行以下操作:

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathWithIndex:2]];
if (cell != nil) {
    // This assumes that you set the tag to 1 on the label
    UILabel *label = (UILabel *)[cell viewWithTag:1];
    label.text = @"New Text";
}

【讨论】:

    【解决方案2】:

    This question 为该错误消息提供了更可能的解释。

    如 WWDC 2011 Session 309 所示,原型单元绝对可以具有连接到单元的自定义子类的插座。无需使用tag 来查找标签并稍后为其分配值。

    您的项目中可能发生的事情(我没看过)是您的原型单元到故事板中的另一个对象的引用。这是无效的,因为原型单元不是真正的单元。可能有零个或一千个。移除外向连接,错误就会消失。

    (在我的例子中,我已经将一个原型单元的 segue 连接到另一个视图控制器,认为点击它会转到该视图控制器。)

    【讨论】:

    • 如果我移除外向连接,图像不会显示。
    • 我不知道您在说什么,但我猜您想将图像放入原型单元格中。所以:创建一个UITableViewCell 的自定义子类,将原型单元设置为该子类,在子类中为您的UIImageView 创建一个IBOutlet 属性,将UIImageView 拖到原型单元中,从空白处拖一个连接将单元格的一部分分配给UIImageView,然后将您的图像分配给-tableView:cellForRowAtIndexPath: 中的该属性。
    猜你喜欢
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多