Je cherche partout et je n'ai pas trouvé ma réponse.
Je peuplé une vision utile avec des cellules dynamiques de Json et j'essaie de cacher des cellules supplémentaires. J'ai éteint les séparateurs dans IB et, bien sûr, tous les séparateurs de cellules disparaissent. Comment puis-je ajouter une ligne au bas et au sommet de chaque TableViewCell afin que seules les cellules qui ont une information montrent une bordure? J'ai importé de quartz et j'ai joué avec Calayer mais je ne trouve pas de solution. P>
J'ai trouvé une question similaire ici, mais la seule réponse n'était pas très utile. P>
Que serait Soyez une façon meilleure et différente de faire cela? P>
Voici mon celltfrowortindexpath et mon numérosofrowsection: p>
5 Réponses :
Il ressemble à une solution sous-optimale pour essayer de "distinguer" vos cellules valides de celles vides avec des lignes. Une approche supérieure serait de nettoyer la source de données avant de remplir la table avec elle. P>
Je ne les crée pas, mais Xcode remplit dans l'espace vide de la table avec des cellules vides. Je ne crée que le nombre de cellules en numérosofrowsection égal au nombre d'objets de mon tableau de données. Actuellement, il existe deux objets et cellules créés, mais Xcode remplit dans le reste.
J'ai édité ma réponse. Je pourrais probablement vous aider à créer des lignes, mais cela sonne juste comme une si mauvaise idée ...
Je n'obtiens toujours pas ce que vous entendez par "nettoyer la source de données". Comment la source de données a-t-elle quelque chose à voir avec les pensionnaires sur un uableviewcell? Je ne crée que 2 cellules, Xcode fait le reste automatiquement, j'imagine parce que c'est des cellules prototypes. Je suis ouvert à n'importe quelle façon de faire ça
Je pense aussi que ce n'est pas la meilleure idée, mais si vous voulez vraiment faire cela, voici le code qui permettra de réaliser ce que vous voulez: mettre ce code dans le p> prendre en compte que ce n'est pas très bon pour la performance, surtout si vous avez beaucoup de cellules. Si vous avez une plus grande quantité de données, reportez-vous à cette question à la question pour obtenir de l'aide sur la manière d'optimiser le dessin. p> p> TableView : CellfroworTindexpath: méthode code>. Le look final de votre
utableview code> sera comme ceci: p>
Merci pour l'aide. Quelle serait la meilleure façon de le faire? Je veux le faire est rapide que possible.
La meilleure façon serait de sous-classement utableviewcell code> et de remplacement de la méthode code> drawrect: code> avec le code dans ma question liée. Edit: Le code comme vous pouvez le voir dans la réponse avec plus de upvotes.
Je pense que vous devriez au moins essayer la méthode "plus facile" avant de continuer à optimiser la solution - vous pourriez trouver qu'il est assez rapide.
Ok merci, je regardais juste cette question liée. Cela a très bien fonctionné, même si j'ai besoin d'ajouter du remplissage à My TableViewCells pour s'adapter à mes vignettes ... mais c'est un problème différent. Je vais donner à la fois un tourbillon et voir ce qui est mieux. Merci beaucoup!!
Qu'est-ce que l'on permettrait une réorganisation des cellules? Comment résoudre le problème si l'utilisateur fait glisser la première rangée inférieure et une autre prend sa place?
Bonne réponse d'il y a longtemps ... Je ne sais pas si c'est un nouveau comportement depuis 2012, mais le début y code> coordonnée pour le cadre inférieur doit être
cell.bound.size.SIZE .Height -1 Code> Sinon, il s'agit de 1 "pixel" sous la cellule suivante et non visible si la cellule ci-dessous est opaque.
Utiliser des cellules personnalisées. Votre DataSoure (modèles) doit piloter les informations dans les cellules personnalisées. Créez un setter dans la classe de cellules personnalisée pouvant être définie à chaque ligne. comme dans .... p>
Allocation de votre cellule personnalisée avec une carte de réutilisation, P> li>
Passez la propriété qui est en train de déterminer si la ligne doit indiquer: retourne la cellule; p> li>
ol>
Techniquement, la réponse de Marco fonctionnera et un bon travail sur une solution simple. Mais vous ne serez pas en mesure de développer cela beaucoup plus loin que cela cela. p>
[Setomlines cellulaires: modèle.property]; strong> p> li>
Essayez uniquement Ceci à TableView: CellfornatDexPath: Code> Méthode
[cell.contentView.layer setBorderColor:[UIColor grayColor].CGColor];
[cell.contentView.layer setBorderWidth:1.0f];
Serait bon, mais définit également la bordure gauche et droite qui n'est pas ce que veut.
Ce n'est pas la réponse à la question, mais la solution propre pour le problème initial. p>
Ajoutez un uIView vide comme pied de page de l'utableview. Ensuite, les cellules vides seront cachées. Voir Cette réponse . p>