J'ai besoin d'ajouter un rembourrage pour que l'espace entre chaque cellule de chaque section dans swift 2.1

Mais tout ce que j'ai réussi à faire était d'ajouter un en-tête pour la section dont je ne veux pas.

Comment puis-je ajouter de l'espace entre les cellules d'un tableau dynamique?

Voici le code pour ajouter un en-tête:

    // Set the spacing between sections
    override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 10
    }

    override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let header = UIView()
        header.backgroundColor = UIColor.clearColor()
        return header
    }

Voici la création du code de vue de table:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}


override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.tableData.count
}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell  {

    //Table view cells are reused and should be dequeued using a cell identifier.
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)

    let rowData = self.tableData[indexPath.row]

    cell.textLabel!.text = rowData.name
    cell.textLabel!.textAlignment = .Right


    if let url  = NSURL(string: rowData.img),
        data = NSData(contentsOfURL: url)
    {
        cell.imageView?.image = UIImage(data: data)
    }



    return cell
    }

À l'heure actuelle, ma vue de table ressemble à ceci:

enter image description here

Mettre à jour le code et la vue de la table:

enter image description here

4
anonymox 5 janv. 2016 à 12:32

5 réponses

Meilleure réponse

Vous devez simplement définir la hauteur de la cellule:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
   return 100 //cell height
}

MISE À JOUR:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
   if indexPath.row % 2 == 0
   {
      return 100 //cell height
   }
   else
   {
      return 5 //space heigh
   }
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell  {

    //Table view cells are reused and should be dequeued using a cell identifier.
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)

    if indexPath.row % 2 == 0
    {
        let rowData = self.tableData[indexPath.row/2]

        cell.textLabel!.text = rowData.name
        cell.textLabel!.textAlignment = .Right

        if let url  = NSURL(string: rowData.img),
            data = NSData(contentsOfURL: url)
        {
            cell.imageView?.image = UIImage(data: data)
        }
        else
        {
            cell.imageView?.image = nil
        }
    }
    else
    {
        cell.textLabel!.text = nil
        cell.imageView?.image = nil
    }
    return cell
}
2
ChikabuZ 5 janv. 2016 à 14:13

Il n'y a pas d'espacement entre les cellules dans une vue de tableau. Uniquement dans une vue de collection.

Les options qui s'offrent à vous sont ...

  1. Utilisez plutôt une vue de collection. Il est relativement facile de le faire ressembler à une vue de table. En utilisant cela, vous pouvez utiliser l'espacement entre les éléments.

  2. Augmentez la hauteur des cellules de 2 pixels et ajoutez une zone vide en haut ou en bas de chacune. Cela donnera l'illusion d'ajouter de l'espace entre eux.

6
Fogmeister 5 janv. 2016 à 09:45

Vous pouvez utiliser le HeightForRowAtIndexPath ou modifier la "hauteur de ligne" dans votre tableView Xib sous l'inspecteur de taille ...

Ou vous pouvez consulter ce lien pour objective-c: https://stackoverflow.com/a/14726457/4489420. En cela, il créera des sections basées sur votre nombre de tableaux ...

1
Community 23 mai 2017 à 10:30

Il y a 2 façons d'augmenter la hauteur

  1. dans le storyboard, vous sélectionnez votre tableview et définissez le rowHeight (quelles meilleures suites vous implémentez) dans inspecteur de taille

  2. Ajoutez cette fonction dans votre viewController

    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 
     { return 35;//Whatever height you want...}
    
0
Muhammad Saifullah 5 janv. 2016 à 09:51

Cochez celle-ci si vous utilisez Dynamic Heights ... https://www.facebook.com/iOSApplicationDevelopers / posts / 1297809426911662

0
Ananth 5 janv. 2016 à 10:19