uitableviewcell custom ios iphone swift uitableview cell

ios - custom - uitableviewcell



¿UITextView y Cell actualizan dinámicamente la altura según el contenido de la vista de texto? (1)

Esto también funciona para ios 7

esto va dentro de su tableviewcell

protocol HeightForTextView { func heightOfTextView(height: CGFloat) } class TableViewCell: UITableViewCell { @IBOutlet weak var textView: UITextView! var delgate:HeightForTextView? override func awakeFromNib() { super.awakeFromNib() // Initialization code } func textViewDidChange(textView: UITextView) { var fixedWidth: CGFloat = textView.frame.size.width var newSize: CGSize = textView.sizeThatFits(CGSizeMake(fixedWidth, CGFloat.max)) if let iuDelegate = self.delgate { iuDelegate.heightOfTextView(newSize.height) } } }

su controlador de mesa debe ser

class TableViewController: UITableViewController,HeightForTextView { var textViewHeight = CGFloat() //In your cell for row method set your your delegate override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! TableViewCell cell.delgate = self return cell } //delegate method func heightOfTextView(height: CGFloat) { textViewHeight = height self.tableView.beginUpdates() self.tableView.endUpdates() } override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return textViewHeight + 70 } }

He estado teniendo un problema con respecto a una UITextView dentro de una celda personalizada. El textView funciona perfectamente además de mi problema. Tengo la configuración de los métodos UITextViewDelegate, así que cuando algo le sucede a la vista de texto, tengo esos métodos conectados.

Me gustaría saber cómo puedo hacer que mi celda personalizada aumente dinámicamente su altura a medida que el usuario escribe. Una vez que el usuario toca el final de la línea de la vista de texto, también tiene la vista de texto para agregar otra línea automáticamente. He estado buscando en línea por un tiempo, y la mayoría de los ejemplos para este problema están en el objetivo c. No hay mucho código rápido. Apreciaría cualquier ayuda.

Tengo mi celda conectada en el archivo tableview como tal ..

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell: cellCustom = the_TableView.dequeueReusableCellWithIdentifier("cell") as! cellCustom return cell }

En el archivo de celda personalizado, tengo los delegados configurados ...

func textViewDidChange(textView: UITextView) { } func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { return true }

He intentado algunas cosas como ...

self.textview.sizeToFit() self.the_TableView.rowHeight = UITableViewAutomaticDimension self.the_TableView.estimatedRowHeight = 47

Cuando lo hice, la vista de texto tomó todo el texto, pero no aumentó de tamaño hasta que renuncié a su primera respuesta y me desplacé hacia arriba para que la celda desapareciera. Luego, cuando la célula rebota, se actualiza.

Ya agregué todas las restricciones y el proyecto tiene cero riesgos o errores y funciona perfectamente.

Para aclarar, me gustaría que el uitextview cambie la altura según el contenido que escriba el usuario mientras lo escribe, lo que significa que la celda personalizada y la vista de tabla deberían actualizarse. Piensa en la aplicación clara en iPhone. Es así. La célula se actualiza dinámicamente a medida que el usuario escribe, aumentando su altura, mientras agrega una nueva línea una vez que el usuario llega al final. Eso es a lo que estoy llegando.

Aunque no soy nuevo en el desarrollo de ninguna manera, nunca antes había llegado a este punto en el desarrollo. Cualquier ayuda sería extremadamente apreciada. Como tengo mi celda personalizada en otro archivo, tengo dificultades para acceder a los elementos de mi celda desde el archivo tableview. Todavía soy un novato, supongo. Gracias por leer esto