2008-11-26 10 views
1

J'ai un problème étrange avec un UITableView particulier dans mon expérience iPhone devel ici. Si vous regardez la capture d'écran suivante:Cellule cassée avec un barré impair?

alt text http://dl-client.getdropbox.com/u/57676/brokencell.png

vous remarquerez une grève à travers en passant par le milieu de la cellule "Jane Aba.

Une idée de ce qui pourrait causer cet affichage graphique impair? C'est vrai à la fois pour le simulateur et pour le périphérique actuel exécutant 2.2 SDK.

Comme demandé, voici ma méthode -tableView:cellForRowIndexPath::

* EDIT *

J'ai localisé le problème. Je ne suis pas entièrement sûr pourquoi c'est le problème, mais c'est. Dans mon RootViewController, j'ai la ligne de code suivante dans ma méthode -initWithCoder::

self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; 

Quand je commente que sur la cellule (qui est pas dans le RootViewController, mais un contrôleur secondaire), il est résolu. Une idée de pourquoi cela pourrait être le cas?

+0

Ces cellules ou sous-classes UITableViewCell standard sont-elles? La ligne bouge-t-elle lorsque vous faites défiler la table? Est-ce dans chaque cellule, ou juste l'un d'entre eux? –

+0

Bonjour Ben, ce sont des cellules UITableViewCell standard. Je n'ai fait aucune sous-classe pour les cellules complexes. La ligne bouge avec la cellule et c'est seulement dans une cellule, pour Jane Aba. Mes autres personnages fictifs n'ont pas la grève. – Coocoo4Cocoa

+0

Avez-vous ajouté des sous-vues à la table? Utilisez-vous des hauteurs de rangée de table personnalisées? –

Répondre

0

Faites-vous quelque chose de spécial dans votre méthode -tableView: heightForRowAtIndexPath:?

Il me semble que la hauteur de la ligne est mal réglée, de sorte que le contenu de la cellule s'étend en dehors de ses limites.

+0

N'a pas ajouté cette méthode, donc non. Cela a du sens si c'était le problème. – Coocoo4Cocoa

1

J'ai eu un problème similaire. Pour moi, la ligne unique a été causée par une vue superflue qui a été créée mais qui n'a jamais été dimensionnée ou placée correctement et qui a donc fait 1 pixel de haut, flottant sur tout le reste. Vous pouvez également provoquer cela en confondant un UINavigationController à propos de son ensemble de sous-vues (en ajoutant des vues directement à son conteneur de disposition).

Regardez dans votre interface utilisateur (fichiers xib et vues créées par programme) pour une vue qui ne devrait pas être là ou qui n'est pas utilisée. Il peut être utile d'écrire du code pour vider une hiérarchie d'interface utilisateur, de sorte que vous puissiez voir quelles vues se trouvent.

0

Le problème disparaît lorsque vous définissez la hauteur de cellule pour la vue de table à 1 pixel dans IB. Il semble qu'avant de remplir la table, une table vide soit dessinée avec les contours de la hauteur de cellule définie dans IB. Ne réglez pas la hauteur de la cellule sur 0. IB n'aime pas cela. :-)

Questions connexes