我的UITableView与具有自定义类细胞,例如HistoryCell
如何在自定义UITableViewCell中获取UILabel的字体大小?
细胞的UI元素是由在Interface Builder与类属性链接:
@IBOutlet var contentLabel: UILabel!
我的任务是正确的高度设定,因为这种细胞contentLabel
是多行。我想用String.boundingRect
法计算的高度,但它需要UIFont
我就可以从界面生成器复制字体属性的代码在开发时间,但如果字体将在未来被改变,代码将需要修复
相反,我想从内存中获取字体细胞
我创建静态实例,并用它来回报字体:
class HistoryCell: UITableViewCell {
private static let instance = HistoryCell()
static func textFont() -> UIFont {
return instance.contentLabel.font
}
}
但是当我调用方法,contentLabel
是nil
为什么它是零?
我可以用另一种方式获取单元元素字体吗?
你检查了co将IBOutlet连接到contentLable? – karthikeyan
您必须确保在视图“加载”后检查它。例如,在'awakeFromNib()' – Tobonaut
@Tobonaut尝试它,是否有可能当tableview单元格在storyboard不在自己的xib文件中? –