【问题标题】:Use swift inner class on Interface Builder在 Interface Builder 上使用 swift 内部类
【发布时间】:2016-06-06 18:41:52
【问题描述】:

我有一个内部自定义 UITableViewCell 类(类中的类),我想在 Interface Builder 上使用它。但是,它无法识别它。

import UIKit

class ContactListViewController: UIViewController {
    class Cell: UITableViewCell {
        @IBOutlet weak var name: UILabel!
        @IBOutlet weak var phone: UILabel!
    }

    @IBOutlet weak var tableView: UITableView!
}

上图的配置无效。有办法吗?

【问题讨论】:

  • 为 UITableViewCell 创建一个 xib 并将类分配给它,然后在 UITableView 中,您可以将 UITableViewCell 类分配给原型单元格。
  • 感谢您的回复。我为 UITableViewCell 创建了一个 xib,但我仍然无法在 xib 上为 UITableViewCell 分配一个内部类。
  • 对于 Swift,正确的术语是“嵌套类”。

标签: ios xcode swift


【解决方案1】:

您需要使用 @objc 为您的嵌套类指定目标 c 名称,然后在 Interface Builder 中使用它:

import UIKit

class ContactListViewController: UIViewController {
    @objc(CLCell) class Cell: UITableViewCell {
        @IBOutlet weak var name: UILabel!
        @IBOutlet weak var phone: UILabel!
    }

    @IBOutlet weak var tableView: UITableView!
}

【讨论】:

  • 警告:您需要确保模块为None,如图所示。否则,接口生成器将尝试通过其不存在的名称来查找类+模块。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2014-01-07
相关资源
最近更新 更多