Lorsque je configure une vue de table avec 4 lignes, il y a encore des lignes de séparateurs supplémentaires (ou des cellules vides supplémentaires) sous les lignes remplies.
Comment retirer ces cellules?
la source
Lorsque je configure une vue de table avec 4 lignes, il y a encore des lignes de séparateurs supplémentaires (ou des cellules vides supplémentaires) sous les lignes remplies.
Comment retirer ces cellules?
Faites simplement glisser une UIView sur la table. Dans le storyboard, il se trouvera en haut sous vos cellules personnalisées. Vous préférerez peut-être l'appeler "pied de page".
Ici, il est affiché en vert pour plus de clarté, vous voudrez probablement une couleur claire.
Notez qu'en ajustant la hauteur, vous pouvez affecter la façon dont le "rebond inférieur" de la table est géré, comme vous préférez. (La hauteur zéro est généralement bonne).
Pour le faire par programme:
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.tableFooterView = UIView()
}
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.tableView.tableFooterView = [UIView new];
}
ou si vous préférez,
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Ajouter au contrôleur de vue de table ...
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return CGFLOAT_MIN;
}
et si nécessaire ...
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [UIView new];
// If you are not using ARC:
// return [[UIView new] autorelease];
}
tableFooterView
laisse un séparateur sur la dernière cellule de la ligne, car le tableau anticipe toujours le contenu sous cette cellule. L'utilisation de la méthode historique éliminera ce dernier séparateur et sera meilleure dans l'ensemble.Voici une autre façon de le faire sans le style de tableau groupé, et que vous ne devineriez probablement pas. L'ajout d'
un en-tête et d'unpied de page au tableau(peut-être que l'un ou l'autre suffit, n'a pas été vérifié)entraîne la disparition des séparateurs des lignes de remplissage / vides.Je suis tombé dessus parce que je voulais un peu d'espace en haut et en bas des tables pour diminuer le risque de toucher des boutons au lieu d'une cellule de table avec des doigts charnus. Voici une méthode pour coller une vue vide en tant qu'en-tête et pied de page. Utilisez la hauteur de votre choix, vous éliminez toujours les lignes de séparation supplémentaires.
En réponse à @Casebash, je suis retourné au code dans mon application ("AcmeLists" List Manager dans iTunes Store ...) et j'ai court-circuité la méthode addHeaderAndFooter pour vérifier. Sans cela , j'ai les séparateurs de lignes supplémentaires; avec le code, j'ai ce que vous voyez dans cet instantané de fenêtre: aucune image de séparateurs de ligne de table . Je ne sais donc pas pourquoi cela n'aurait pas fonctionné pour vous. De plus, il est logique pour moi que d'avoir un pied de page personnalisé dans une vue de table devrait nécessairement arrêter de dessiner des séparateurs de lignes pour les lignes vides en dessous. Ce serait hideux. Pour référence, j'ai regardé des tableaux où il y avait plus de lignes que ce qui pouvait être affiché à l'écran, puis un tableau avec deux lignes. Dans les deux cas, pas de séparateurs étrangers.
Vos vues personnalisées n'ont peut-être pas été réellement ajoutées. Pour vérifier cela, définissez la couleur d'arrière-plan sur autre chose que
clearColor
, par exemple[UIColor redColor]
. Si vous ne voyez pas de barres rouges au bas du tableau, votre pied de page n'est pas défini.la source
Suppression de lignes de séparation supplémentaires pour les lignes vides dans UITableView dans Swift
la source
Je voudrais étendre la réponse de wkw :
Ajouter simplement le pied de page avec une hauteur de 0 fera l'affaire. (testé sur sdk 4.2, 4.4.1)
ou encore plus simple - où vous configurez votre tableview, ajoutez cette ligne:
ou encore plus simple - pour supprimer simplement les séparateurs:
Merci encore à wkw :)
la source
Pour iOS 7+ à l'aide de Storyboards
UIView
Faites simplement glisser un dans votreUITableView
comme pied de page. Définissez la hauteur de la vue de pied de page sur 0.la source
Essaye ça. Cela a fonctionné pour moi:
la source
Pour Swift:
la source
Si vous utilisez Swift, ajoutez le code suivant pour viewDidLoad du contrôleur qui gère la table view:
la source
Vous pouvez simplement ajouter un pied de page vide à la fin, puis il masquera les cellules vides, mais il sera également très laid:
Il y a une meilleure approche: ajoutez une ligne de 1 point à la fin de la vue du tableau car le pied de page et les cellules vides ne seront également plus affichés.
la source
ajoutez simplement ce code ( Swift ). .
la source
Faire progresser la solution de J. Costa: Vous pouvez apporter une modification globale à la table en mettant cette ligne de code:
à l'intérieur de la première méthode possible (généralement dans
AppDelegate
, dans:application:didFinishLaunchingWithOptions:
méthode).la source
Je sais que cette question a été acceptée, mais j'ai mis ici différentes façons de masquer la ligne de séparation supplémentaire de
UITableView
.Vous pouvez masquer
tableView
la ligne de séparation standard de, et ajouter votre ligne personnalisée en haut de chaque cellule.Mise à jour:
La façon la plus simple d'ajouter un séparateur personnalisé est d'ajouter un simple
UIView
d'une hauteur de 1px:OU
OU
OU La meilleure et simple façon que j'aime est
Essayez l'un d'entre eux;
la source
Vous pouvez trouver beaucoup de réponses à cette question. La plupart d'entre eux concernent la manipulation avec
UITableView
l'tableFooterView
attribut de et c'est la bonne façon de cacher les lignes vides. Pour plus de commodité, j'ai créé une extension simple qui permet d'activer / désactiver les lignes vides d'Interface Builder. Vous pouvez le vérifier à partir de ce fichier gist . J'espère que cela pourrait vous faire gagner un peu de temps.Usage:
la source
uitableview ligne de séparateur supplémentaire masquer les lignes de séparateur supplémentaires masquer dans swift 3.0
la source
Si vous ne voulez pas de séparateur après la dernière cellule, vous avez besoin d'une hauteur proche de zéro mais non nulle pour votre pied de page.
Dans votre
UITableViewDelegate
:la source
Swift fonctionne très bien avec:
la source
Ajoutez simplement une vue avec la couleur de séparation souhaitée comme couleur de fond, 100% de largeur, 1px de hauteur à la position x0 y-1 à votre tableViewCell. Assurez-vous que la tableViewCell ne coupe pas les sous-vues, à la place la tableView le devrait.
Ainsi, vous obtenez un séparateur simple et fonctionnel absolu uniquement entre les cellules existantes sans aucun piratage par code ou IB.
Remarque: sur un rebond vertical supérieur, le 1er séparateur apparaît, mais cela ne devrait pas être un problème car c'est le comportement iOS par défaut.
la source
J'utilisais une vue tabulaire pour afficher un nombre fixe de lignes à hauteur fixe, je l'ai donc simplement redimensionné et rendu non défilable.
la source
Pour éliminer les lignes de séparateur supplémentaires du bas de UItableview par programme, écrivez simplement les deux lignes de code suivantes et il en supprimera le séparateur supplémentaire.
Cette astuce fonctionne pour moi tout le temps, essayez-vous.
la source
J'ai eu de la chance en mettant en œuvre un seul morceau de la réponse acceptée (iOS 9+, Swift 2.2). J'avais essayé d'implémenter:
Cependant, il n'y a eu aucun effet sur mon
tableView
- je crois que cela peut avoir quelque chose à voir avec le fait que j'utilisaisUITableViewController
.Au lieu de cela, je n'ai eu qu'à remplacer la
viewForFooterInSection
méthode (je n'ai pas définitableFooterView
ailleurs):Cela a bien fonctionné pour un
tableView
avec une seule section (si vous avez plusieurs sections, vous devez spécifier la dernière).la source
Si vous n'avez qu'une seule section, le moyen le plus rapide et le plus simple consiste à définir simplement le style d'affichage de la table de "Normal" à "Groupé". (voir image)
Si vous avez plus de sections, vous devrez peut-être définir la hauteur de l'en-tête à zéro (selon le goût de votre / votre client / votre chef de projet)
Si vous avez plus de sections et que vous ne voulez pas jouer avec les en-têtes (même s'il ne s'agit que d'une seule ligne dans le cas le plus simple), vous devez définir un UIView comme pied de page, comme cela a été expliqué dans les réponses précédentes)
la source
Extension Swift 4.0
Juste une petite extension pour le storyboard:
la source
Swift 4 voies rapide et facile.
Si vous avez des cellules statiques. Vous pouvez également désactiver le séparateur à partir de la fenêtre Inspecteur. (cela ne sera pas souhaitable si vous avez besoin du séparateur. Dans ce cas, utilisez la méthode indiquée ci-dessus)
la source
super.viewDidLoad()
) et est inclus dans la réponse wiki en haut. En ce qui concerne la suppression de tous les séparateurs, ce n'est vraiment pas le sujet de cette question, alors mieux vaut annuler votre dernière modification et / ou supprimer complètement votre réponse.Si vous souhaitez supprimer l'espace indésirable dans UITableview, vous pouvez utiliser ci-dessous deux méthodes
la source
J'ai ajouté cette petite extension tableview qui aide tout au long
la source
Essayez avec ça
pour l' objectif C
pour Swift
la source
Essaye ça
la source
UIKit
ne crée pas de cellule vide lorsque letableView
atableFooterView
. Nous pouvons donc faire un tour et attribuer unUIView
objet de hauteur nulle comme pied de page dutableView
.la source
Si vous avez
searchbar
dans votreview
(pour limiter le nombre de résultats par exemple), vous devez également ajouter les éléments suivants dansshouldReloadTableForSearchString
etshouldReloadTableForSearchScope:
la source
Dans Swift (j'utilise 4.0), vous pouvez accomplir cela en créant une
UITableViewCell
classe personnalisée etoverriding
lasetSelected
méthode. Puis leseparator insets
tout à 0 . (ma classe principale avec la vue de table a un fond clair) couleur.la source