ios swift如何与定制单元中的插座进行交互

时间:2015-11-15 08:03:41

标签: ios swift uitableview

一般来说,我有一个视图控制器,我添加了插座。并且内部视图确实加载我可以更改文本视图的字体,或者我可以将图像添加到ui图像。但现在我有一个像这样的自定义单元格:

class NumberOfPeopleTableViewCell: UITableViewCell {

    @IBOutlet weak var numberOfPeopleLabel: UILabel!

如你所见,我在那个小区有插座,我怎么能与那个插座互动?表视图单元格中没有视图加载函数

4 个答案:

答案 0 :(得分:2)

您可以在故事板中设置标签的字体。

或者您可以在awakeFromNib中设置标签的字体(您可以在单元格类中覆盖的方法)。

或者您可以在tableView(_:cellForRowAtIndexPath:)(在表格视图控制器中)设置标签的字体。

答案 1 :(得分:0)

您可以覆盖功能deviceready

layoutSubviews

答案 2 :(得分:0)

从我可以收集到的,"标准"方法将在你的UITableViewController子类中:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("<Your Id Here>", forIndexPath: indexPath) as! NumberOfPeopleTableViewCell
        let foo = cell.numberOfPeopleLabel // DO STUFF WITH IT
        // Do more stuff here
        return cell
}

或 -

如果您希望保持View Controller代码清除图形布局/外观逻辑(您应该考虑),请在NumberOfPeopleTableViewCell内覆盖func layoutSubviews()

或(我最喜欢的) -

您可以使用UIApparence对UITextView(例如MYCellTextView)进行子类化,并更改应用程序委托中所有子类实例的外观。像这应该工作:

MyCellTextView.appearance().font = UIFont(name: "<myFont>", size: 10.0)

例如,您可以将上述内容放在您的app委托中。这样做的好处是可以将外观代码保存在一个位置并远离视图控制器(对于自定义视图的所有实例都是通用的)。

答案 3 :(得分:0)

看看awakeFromNib。作为documentation州:

当对象收到awakeFromNib消息时,保证设置其所有插座实例变量。

所以你可以这样做:

override func awakeFromNib() {
  super.awakeFromNib()

  numberOfPeopleLabel.font = UIFont.systemFontOfSize(15.0) // or whatever font you want to assign
}