Bonjour, j'ai une TableViewController
avec deux cellules statiques. Toutefois, une fois affiché, il affiche les deux cellules statiques, puis toutes les autres cellules vides de la vue tableau. Cependant, je ne veux pas afficher ces cellules car elles sont inutiles. Comment masquer le reste des cellules en dehors des deux cellules statiques?
dans votre fonction viewDidLoad()
, ajoutez cette ligne de code:
tableView.tableFooterView = UIView()
Pour ajouter à cela, la raison pour laquelle définir tableFooterView
sur UIView()
supprime les lignes est que vous définissez un objet UIView()
vide sur la propriété. Selon la documentation Apple:
var tableFooterView: UIView?
Par conséquent, définir un UIView () vide n'affichera rien en dessous de vos données pour cette propriété.
Vous pouvez ramener les lignes vides en réinitialisant tableFooterView
à la valeur par défaut, comme suit:
tableView.tableFooterView = nil
La définition de tableFooterView
devrait supprimer les cellules supplémentaires, telles que les vues.
@IBOutlet weak var tableView: UITableView! {
didSet {
tableView.tableFooterView = UIView(frame: .zero)
}
}
Vous pouvez également atteindre cet objectif dans Storyboard en faisant simplement glisser une vue dans la zone de pied de page de la vue de table, puis définissez sa hauteur et sa couleur d'arrière-plan sur 1 et désactivez-les respectivement à l'aide de l'inspecteur de propriétés.
(Cela suppose que vous ne pouvez pas ou ne voulez pas simplement utiliser le paramètre de style Groupe pour une raison quelconque. Sinon, procédez comme suit.)
Swift 4 En vous basant sur la réponse de HorseT, commencez par contrôler le glisser de votre vue Table dans votre storyboard jusqu'à votre classe View Controller et créez un point de vente appelé tableView.
@IBOutlet weak var tableView: UITableView!
Ensuite, votre viewDidLoad dans votre contrôleur View devrait ressembler à ceci:
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
tableView.tableFooterView = UIView()
}
tableView.tableFooterView = UIView.init(frame: CGRect.zero)
Appelez ce code à l'intérieur de la méthode viewWillAppear
. Et travaillera
Basé sur les réponses ci-dessus dans Swift .
tableView.tableFooterView = UIView(frame: .zero)
Dans Swift 4, vous pouvez supprimer ces lignes inutiles avec un simple code à une ligne:
//tableview refers to your UITableView
tableView.separatorStyle = .none
Ajoutez simplement:
tableView.tableFooterView = UIView()
Explication:
Ceci est totalement valide et fonctionne parfaitement dans Swift 3.By Comme vous définissez un objet UIView () vide pour la propriété, la définition de tableFooterView sur UIView () supprime les lignes.
si vous souhaitez supprimer des lignes pour toutes les UITableViews
de votre application, ajoutez simplement une extension comme celle-ci:
Swift 4.0
extension UITableView {
override open func didMoveToSuperview() {
super.didMoveToSuperview()
self.tableFooterView = UIView()
}