Comment limiter le nombre de cellules affichées par UITableview?
Im en utilisant un tableview pour afficher des informations dans un quiz app que je travaille sur. Ma question est comment puis-je faire de la tableview afficher uniquement le nombre de cellules dont j'ai besoin. Ive définir le nombre de lignes délégué méthode comme ceci:
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 5;
}
mais au bas de la vue de la table sont les cellules vides ne sont pas nécessaires. Si j'ai mis le tableview style regroupés je reçois 5 cellules et pas vides au-dessous d'eux. J'ai vu que d'autres personnes ont fait cela, mais ne peux pas semblent travail. Je me demandais si ils ont en quelque sorte ajouté un affichage personnalisé à la table de pied de page pour annuler les cellules vides?
Des idées ou une aide appréciée.
source d'informationauteur Martin Harvey
Vous devez vous connecter pour publier un commentaire.
Si vous voulez garder le séparateur, vous pouvez insérer un mannequin de pied de vue. Cela permettra de limiter la tableview pour ne montrer que la quantité de cellules que vous avez retourné dans tableView:numberOfRowsInSection:
Dans swift:
Beaucoup plus agréable méthode qui ne nécessite pas de cellule de redimensionnement est de désactiver le séparateur par défaut (définir le style de rien) et ensuite une ligne de séparation dans la cellule elle-même.
J'ai eu un problème similaire, comment faire pour afficher uniquement les séparateurs de cellules qui contiennent des données.
Ce que j'ai fait est le suivant:
Désactiver séparateurs pour l'ensemble de la tableView. Vous pouvez le faire dans le
inspecteur de la tableview dans Interface builder ou par téléphone
[yourTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
.À l'intérieur de votre
cellForRowAtIndexPath
où vous remplissez votre tableview avec les cellules de créer un nouveauUIView
et de le définir comme une sous-vue de la cellule. L'arrière-plan de ce point de vue lightgray et légèrement transparent. Vous pouvez le faire avec les éléments suivants:La largeur de ce point de vue est de 1 pixel qui est le même que le séparateur par défaut, il s'étend sur la longueur de la cellule, au fond.
Depuis
cellForRowAtIndexPath
n'est convoquée aussi souvent que vous l'avez spécifié dansnumberOfRowsInSection
ces sous-vues est créé uniquement pour les cellules qui possèdent des données et devrait avoir un séparateur.Espère que cette aide.
Vous pouvez mettre en œuvre heightForRowAtIndexPath: et de calculer la bonne hauteur pour afficher uniquement les 5 cellules sur l'écran.
Êtes-vous toujours va avoir 5 lignes? Si c'est une situation dynamique, vous devez définir le nombre de lignes en fonction de la source de données de la tableview. Par exemple:
Ce retourne le nombre d'enregistrements dans la table contenant le contenu.
La tableview est seulement en cours pour afficher le nombre de lignes et de sections que vous le raconter. Si vous êtes toujours d'avoir un seul article, NE PAS mettre en œuvre la méthode ci-dessous.
Sans cela la tableview aura seulement 1 article. Avec elle, comme vous pouvez l'imaginer, vous pouvez spécifier le nombre de sections.
Cela a fonctionné pour moi - j'ai eu des lignes vides au bas de l'écran sur un iphone 5 -
Dans mon cas, j'ai eu besoin de 9 lignes
Il est assez Simple. Il suffit de régler la taille de la liste comme ceci:
auto.optionPickerPopOver.popoverContentSize = CGSizeMake(200, 200);
Certainement, vous pouvez ajuster la taille (200,200) en fonction de la taille du contenu et du nombre de lignes.
Moyen facile serait de rétrécir tableView taille. I. e. 5 cellules de 20 points chacun donne 100.0 f, réglage de la hauteur à 100,0 f seulement 5 lignes seront visibles. Une autre façon serait de retour plus de lignes, mais les lignes 6,7, et sera donc certains points de vue avec alpha 0, mais qui semble lourd. Avez-vous essayé de retourner certains clerColor vue comme footerView?
Je pense que u peut essayer de changer l'image de la vue de la table, si vous voulez régler avec le nombre de cellules.
Essayer quelque chose comme cela:
[table setFrame:CGRectMake(x, y, width, height*[list count])];
hauteur se réfère à la hauteur de la cellule
Comme Nyx0uf dit, en limitant la taille de la cellule peut accomplir cela. Par exemple:
mise en œuvre de ces deux méthodes dans votre UITableViewController:
En fait, ces codes sont dire tableview que vous n'avez pas besoin de rendre l'élément de séparation de la ligne de plus pour moi, de sorte qu'il ressemble à des cellules vides ne sont pas affichées(en fait , la cellule vide ne peut pas être choisi trop)