10
votes

Comment afficher une table avec zéro rangée dans UitailView

Je charge un contenu dans UitailView de manière dynamique. S'il y a des données, le tableau doit afficher les données. S'il n'y a pas de données, la table doit afficher une page simple. Mais dans mon application, la table affiche la page simple avec deux lignes de séparateur. Je dois supprimer cette ligne de séparateur et afficher une page blanche latalité. S'il vous plaît suggérer?

Toute aide serait appréciée!


2 commentaires

c'est aussi facile ... [Self.TableView SettableFooTerview: [UIView NEW]];


Notez que la solution réelle est simplement pour la définir comme une table de style "groupée" ! Pour ce faire, allez simplement à Thomas Decaux 'Répondre ici: Stackoverflow.com/Questtions/1006663/...


6 Réponses :


2
votes

Vous pouvez vérifier le cas vide si votre DataSource est vide, ajoutez une vue d'espace réservé en haut de la tableView. S'ils ne sont pas vides, retirez la vue de l'espace réservé.


3 commentaires

Cela ressemble à un piratage laids pour moi et des hacks laids ont tendance à briser de la vraie fonctionnalité sur la route.


Je crois que vice-versa: il devrait y avoir "quelque chose" pour expliquer l'utilisateur que l'application fonctionne comme prévu, elle n'a pas écrasé, il a déjà fini ce qu'il faisait et - surtout - cet espace est vide exprès, mais seulement pour l'instant .


Je ne vois pas pourquoi il s'agit d'un piratage laid, c'est juste un moyen d'afficher une vue personnalisée pendant qu'il n'y a pas de données. La vue personnalisée peut expliquer pourquoi il n'y a pas de données et comment l'utilisateur peut entrer des données. C'est une pratique courante dans les applications iPhone (et Mac).



2
votes

Un clair utableview affichera toujours des lignes de séparateur même s'il est vide. Vous remarquerez peut-être que si vous avez une liste avec seulement une ou deux lignes, il existe toujours des lignes de séparateur visibles. Ceci est le comportement par défaut et ne devrait pas être remplacé à moins que vous ayez une bonne raison vraiment .

Je suppose que vous ne voyez que deux lignes de séparateur car vos rangées sont très hautes?

Si vous faites vraiment besoin de supprimer les lignes de séparateur, définissez la propriété SéparatorStyle de la vue de votre table sur UitailViewCellseparatorStylenone . Notez que cela affectera toutes les lignes. Donc, si vous voulez toujours des séparateurs pour les lignes qui existent, vous devez tirer ces lignes de séparateur dans votre propre utailviewcell objets.


0 commentaires

26
votes

Si vous fournissez une vue sur le pied de page, les séparateurs entre les rangées vides disparaîtront.

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
myTableView.tableFooterView = view;


4 commentaires

Notez que TABLEFOOTERVIEW est une propriété conservée, donc affichage devrait être (auto) publié.


Fonctionne parfaitement. Ne pouvait pas être plus simple.


Aussi juste pour ajouter, vous n'avez pas besoin de définir le cadre ici. MyTableView.TablefoTerView = [[UIView Alloc] init]; est assez bon.


Cela peut être plus simple! :) [Self.TableView SetTableFooTerview: [UIView NEW]]; Aussi, pourquoi en feriez-vous un pixel élevé? Si (pour une raison quelconque), vous voulez le faire, le «long» chemin juste le faire 0,0,0,0



0
votes

Deux étapes:

Ajouter ce code dans ViewDiDload P>

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
    // The fetch controller has sent all current change notifications, so tell the table view to process all updates.

    if (self.fetchedResultsController.fetchedObjects.count > 0)
        emptyplaceholder.hidden = YES;
    else
        emptyplaceholder.hidden = NO;

    [self.tableView endUpdates];
}


1 commentaires

Désolé, mon modèle est un contrôleur de TableView avec les mêmes informations de date. Donc, les mots doivent être: lorsque le support d'endroit, Uilabel caché lorsque la vue table a une "vraie" cellule de vue de table.



1
votes

Il peut être simplifié à une seule ligne, à l'aide de la solution @bbarnhart: xxx


0 commentaires

0
votes

La bonne conception UI pour ajouter un nouvel uIView à l'UIViewController quand il n'y a pas de données "Aucune donnée disponible", en ajoutant qu'il masquera des lignes de séparation de l'UitailView


0 commentaires