2010-08-17 8 views
2

J'implémente un UITableView qui a l'index le long de la taille de la main droite ainsi que des en-têtes de section. J'implémente essentiellement un stock NSFetchedResultsController comme décrit dans les docs d'Apple. UITableView est contenu dans un UINavigationController avec une barre de navigation noire translucide. J'ai le contenu haut et les inserts scroller mis à 44 pour compenser le chevauchement de la barre de navigation de la table. Même avec les encarts réglés, j'ai quelques problèmes en utilisant un UITableView dans une barre de navigation noire translucide qui je crois sont liés. Quand je touche un élément dans la colonne d'index pour m'amener à cette section, l'en-tête de la section «se bloque» au bon endroit (butée juste en dessous de la barre de navigation) mais la première cellule semble être décalée d'un. Je pense que la table n'est pas consciente du chevauchement de la barre de navigation, donc elle positionne la première cellule où elle irait si l'en-tête était en haut de la fenêtre mais en-dessous de l'en-tête (si cela a du sens). C'est difficile à expliquer, donc je joins une capture d'écran pour aider à illustrer. Le premier 'Billy' qui est caché devrait être à l'emplacement du second billy qui est au-dessous de l'en-tête de la section 'B'.Problèmes de position de défilement/de barre de navigation translucide noire/UITableView/Content

(oups, trop gros d'un noob pour publier des images http://dontgoplastic.com/temp/uitableview.png.)

La deuxième question a trait à la même table, mais en ce qui concerne selectRowAtIndexPath: animation: scrollPosition :. Si j'essaie d'utiliser 'UITableViewScrollPositionNone' pour 'scrollPosition' et que le paramètre indexPath se trouve en-dessous de l'écran visible, il décale la table (comme prévu), mais ce que je suppose est de 44 pixels. Encore une fois, je pense que la table pense que la cellule est en vue, mais ne tient pas compte de l'encart.

J'espère que je suis juste sur une propriété simple.

Merci pour votre temps

Répondre

2

Je ne suis toujours pas 100% ce qui va mal, mais je suis en mesure de le corriger par le sous-classement UITableView et setContentOffset d'édition: animation: comme ceci:

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated {
CGPoint newOffset = CGPointMake(contentOffset.x, contentOffset.y - 44);
[super setContentOffset:newOffset animated:animated];
}

Hope this soit aide à faire la lumière sur mon prob lem ou aide quelqu'un d'autre avec une solution possible.

Merci.