uitableviewcontroller - xcode swift uitableview custom cell




Rápido UITableView set rowHeight (6)

Estoy tratando de establecer la altura de cada fila en la tableView a la altura de la celda correspondiente con este código:

override func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
      var cell = tableView.cellForRowAtIndexPath(indexPath)
      return cell.frame.height
}

Me sale este error al inicializar la var cell :

Hilo 1: EXC_BAD_ACCESS (código = 2, dirección = 0x306d2c)


Asegúrese de que su Delegado de TableView también esté funcionando. si no es así, en su storyboard o en .xib presione y mantenga presionado Control + clic derecho en tableView, arrastre y suelte en su Current ViewController. swift 2.0

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 60.0;
}

Coloque el valor predeterminado rowHeight en viewDidLoad o awakeFromNib . Como señaló Martin R., no se puede llamar a cellForRowAtIndexPath desde heightForRowAtIndexPath

self.tableView.rowHeight = 44.0

Para configurar la altura de la fila hay un método separado:

Para Swift 3

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 100.0;//Choose your custom row height
}

Mayores usos de Swift

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 100.0;//Choose your custom row height
}

De lo contrario, puede establecer la altura de la fila usando:

self.tableView.rowHeight = 44.0

En ViewDidLoad .


Pruebe código como este copiar y pegar en la clase

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 100
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
            var height:CGFloat = CGFloat()
            if indexPath.row == 1 {
                height = 150
            }
            else {
                height = 50
            }

            return height
        }

yourTableView.rowHeight = UITableViewAutomaticDimension

Prueba esto.





uitableview