¿Cómo renderizar una celda de UITableViewCell @IBDesignable en Storyboard?
Creo una subclase de UITableViewCell llamada CustomTableViewCell y la marco como @IBDesignable. En el archivo CustomTableViewCell.xib, arrastro una etiqueta a su centro, luego configuro un @IBOutlet y nombro a esta etiqueta como contentLabel. Luego, arrastro una TableViewCell y la coloco en la tabla de un ViewController en el archivo de storyboard, y cambio su clase a CustomTableViewCell. Mi pregunta es: ¿cómo renderizar este contentLabel en el storyboard?
El siguiente fragmento no funciona y creo que es porque contentLabel aún no se inicializa en init(), pero quiero darle un texto inicial y renderizarlo en el storyboard. ¿Cómo puedo lograr esto?
@IBDesignable class CustomTableViewCell: UITableViewCell {
@IBOutlet weak var contentLabel: UILabel!
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
contentLabel.text = "Hola"
}
required init?(coder: NSCoder) {
super.init(coder: coder)
contentLabel.text = "Hola"
}
}
EDIT: Esta celda debe ser reutilizada en varios controladores de vista diferentes.
davy.ai
Para renderizar la etiqueta
contentLabel
en el storyboard, puedes agregar el métodoprepareForInterfaceBuilder()
a tu claseCustomTableViewCell
y establecer el texto inicial de la etiqueta allí:Este método se llama cuando el Interface Builder está renderizando la celda, por lo que puedes usarlo para configurar cualquier propiedad que desees ver en la vista previa. Esto no afectará el comportamiento de la celda en tiempo de ejecución.
Ten en cuenta que el método
prepareForInterfaceBuilder()
no se llamará si no configuras laCustom Class
de la celda prototipo comoCustomTableViewCell
en el storyboard.