一般来说,我有一个视图控制器,我添加了插座。并且内部视图确实加载我可以更改文本视图的字体,或者我可以将图像添加到ui图像。但现在我有一个像这样的自定义单元格:
class NumberOfPeopleTableViewCell: UITableViewCell {
@IBOutlet weak var numberOfPeopleLabel: UILabel!
如你所见,我在那个小区有插座,我怎么能与那个插座互动?表视图单元格中没有视图加载函数
答案 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
}