4
votes

Ajouter de l'espace sous le dernier élément de la vue Tableau dans Swift

J'ai besoin d'ajouter de l'espace supplémentaire après le dernier élément de la cellule de vue tableau.

Dans la vue reccycler Android, la même chose peut être obtenue par

android:paddingBottom="8dp"
 android:clipToPadding="false"

Tableau vue dernier élément


0 commentaires

5 Réponses :


3
votes

Ajoutez une source de données et un délégué pour votre tableview et utilisez les méthodes de délégué suivantes: - heightForFooterInSection & viewForFooterInSection

// set view for footer
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
    let footerView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 40)) // assuming 40 height for footer.
    footerView.backgroundColor = <Some Color>
    return footerView
}

// set height for footer
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
    return 40
}


5 commentaires

Merci, mais c'est toujours visible même si je suis @ ma première cellule dans la liste ... je n'ai besoin que de cet espace après ma dernière cellule


Le pied de page est toujours affiché après la dernière cellule du tableau. Si vous avez 1000 cellules, le pied de page se trouve après la cellule 1000 et ne sera pas visible tant que vous ne faites pas défiler vers le bas. Si vous avez 4 cellules, il est affiché après la 4ème cellule. Je soupçonne que le pied de page que vous voyez en bas n'est pas en fait un pied de page, mais c'est la vue derrière la vue de la table car la vue de la table peut ne pas couvrir toute la hauteur de la vue.


Veuillez essayer de donner une couleur distincte, par exemple (UIColor.red ou blue) et voir où le pied de page apparaît.


Sûr va vérifier, thkz


drive.google.com/file/d/17mGK7kThMpIvn ZF-_ZZ4fz8uCY /… . Ça arrive



5
votes

Vous devez ajouter des inserts à votre tableView. Essayez le code suivant

let insets = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 0)
tableView.contentInset = insets


3 commentaires

Merci, mais c'est toujours visible même si je suis @ ma première cellule dans la liste ... je n'ai besoin que de cet espace après ma dernière cellule


Qu'entendez-vous par visible même si je suis @ ma première cellule , l'espace ne sera affiché que lorsque vous faites défiler jusqu'à la fin de la tableView et atteignez la dernière cellule, pas avant car nous sommes réglage de l'insert en fonction du contenu de la tableView .


@EbinJoy. Je vous remercie . Heureux d'aider :)



3
votes

Lorsque vous utilisez un encart de contenu pour ajouter un remplissage, cela peut créer un problème, lorsqu'aucune donnée n'est disponible dans tableView.

Essayez ceci

Simplement et la vue dans un tableFooterView pour le remplissage en bas de tableView .

//Add Padding in the bottom of tableview

let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 20))
view.backgroundColor = UIColor.white
tableView.tableFooterView = view


0 commentaires

1
votes

Ajoutez tableFooterView dans tableview.

let tableFooterView  = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.size.width, height: 20))

  tableFooterView.backgroundColor = UIColor.white

  tableView.tableFooterView = tableFooterView


0 commentaires

0
votes

En partant d'une réponse précédente, vous devez vérifier s'il s'agit de la dernière cellule.

let bottomPadding = 8

if (self?.tableView.numberOfRows(inSection: 0) ?? 0) - 1 == row {
    let insets = UIEdgeInsets(top: 0, left: 0, bottom: bottomPadding, right: 0)
    strongSelf.tableView.contentInset = insets
}

En supposant que vous modifiez la première section.


0 commentaires