Células de tamaño propio que no funcionan en Swift

No he agregado ninguna celda prototipo, pero debería funcionar de acuerdo con el último iOS 8 tableView. Aquí está mi código

class ViewController: UIViewController,UITableViewDelegate { @IBOutlet weak var tableView: UITableView! var tabledata = ["hn, helooo dnsjakdnksandksajndksandkasjnkc sacjkasc jkas kjdjknasjkdnsaklmdlksamxklsamxlksamdklsandk cnsdjdnsklnjnfkdnflasfnlfnkdsnfjkdnfjkdsnjkd njsdkadnaksjdnjkasndsakdnkasdnsalkdn cjkndskasdnsakndksandjksandksajndkj ndsjkadnksalndls;adnklsa;mdas,mcjksanckasdjnklscaskncjks" , "hi i am ishan, helooo dnsjakdnksandksajndksandkasjnkc sacjkasc jkas kjdjknasjkdnsaklmdlksamxklsamxlksamdklsandk cnsdjdnsklnjnfkdnflasfnlfnkdsnfjkdnfjkdsnjkd njsdkadnaksjdnjkasndsakdnkasdnsalkdn cjkndskasdnsakndksandjksandksajndkj ndsjkadnksalndls;adnklsa;mdas,mcjksanckasdjnklscaskncjkssndjkasndjksandkjasndkjasndkjasndkjasndjka ", "a" ] func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return tabledata.count } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell") cell.textLabel.text = self.tabledata[indexPath.row] return cell } override func viewDidLoad() { super.viewDidLoad() self.tableView.estimatedRowHeight = 100.0; self.tableView.rowHeight = UITableViewAutomaticDimension; tableView.reloadData() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 

No veo ningún cambio cuando elimino / agrego estas líneas

  self.tableView.estimatedRowHeight = 100.0; self.tableView.rowHeight = UITableViewAutomaticDimension; 

Para que el tamaño de celda automático funcione, debe agregar restricciones de layout a las subvistas de celda que describen completamente el tamaño vertical de las vistas. Sin estas limitaciones, su célula no tiene forma de saber qué tan grande debe ser. Esto se hace más fácilmente en un storyboard.

estimatedRowHeight es solo una sugerencia para la vista de tabla que aumenta el time de carga de la tabla al diferir los cálculos geométricos para que las celdas se desplacen (la ejecución automática puede ser costosa de calcular). Aún se requiere la function Autolayout para indicar a la tabla qué tamaño debe tener cada celda.

También vale la pena señalar que no está reutilizando celdas en su vista de tabla. En su tableView(_:cellForRowAtIndexPath:) , debería estar eliminando celdas en lugar de crear una nueva cada vez:

 func tableView(tableView: UITableView, cellForRowAtAindexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell // configure cell... return cell } 

1: Agregar en ViewDidLoad

 tableView.estimatedRowHeight = 140 // prototype cell height tableView.rowHeight = UITableViewAutomaticDimension 

2: vuelva a cargar la vista de tabla en viewDidAppear

Importante NOTA: para que UITableViewAutomaticDimension funcione, debe establecer todas las restricciones izquierda, derecha, inferior y superior relativas a la vista del contenedor de celdas.

puede agregar simple línea para establecer la altura de la celda

 cell.textLabel.numberOfLines = 20 

Ayudará a proporcionar dinámicamente la altura de la fila de la vista de tabla

 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSDictionary *dictItinararay=[arrCodes objectAtIndex:indexPath.row]; CGSize sizeOfName = [[dictItinararay valueForKey:@"Name"] sizeWithFont:[UIFont systemFontOfSize:16] constrainedToSize:CGSizeMake(180, 1000) lineBreakMode:NSLineBreakByWordWrapping]; if(sizeOfName.height>45) { return sizeOfName.height+10; } else { return 45; } }