Déterminer les coordonnées d'un UITableViewCell lors du défilement
Mon but est d'avoir le UITableViewCells fade in/out quand ils approchent les limites de la UITableView et sur le point d'être couvert/a révélé.
L'approche que j'ai été d'essayer d'obtenir les coordonnées de la UITableViewCell lors d'un événement scroll. Le problème est que chaque cellule semble être à 0,0. J'ai essayé de convertir les coordonnées du parent de table et de vue, mais ils continuent à venir à 0,0.
Donc, en général, si quelqu'un connaît un moyen d'obtenir les coordonnées, ou d'une meilleure façon d'aller sur la décoloration UITableViewCells dans et hors fonction de leur position, je vous serais très reconnaissant de tout conseil que vous pourriez avoir.
Merci pour votre temps,
Joel
source d'informationauteur Joel
Vous devez vous connecter pour publier un commentaire.
La première étape est d'utiliser
CGRect rectInTableView = [tableView rectForRowAtIndexPath:indexPath];
qui rendra compte de la CGRect d'une cellule à l'intérieur de la tableView. Toutefois, cette valeur ne change pas comme la tableView parchemins. C'est la position par rapport à la première ligne de la table (et non la première ligne visible). Pour obtenir la position de la cellule sur l'écran, vous devez le convertir à la superviews système de coordonnées à l'aide de
CGRect rect = [tableView convertRect:rectInTableView toView:[tableView superview]];
Donc la ligne suivante-t-il tout
.CGRect rect = [tableView convertRect:[tableView rectForRowAtIndexPath:indexPath] toView:[tableView superview]];
Pourquoi pas une superposition avec un partiellement dégradé transparent PNG dans une UIImageView c'est moins translucide en haut et en bas?
De jouer avec la cellule de dessin dans le tableau de défilement va prendre un gros gain de performance.
Vous pouvez appeler
pour obtenir le rectangle d'une cellule donnée. Cela permettra de contenir les coordonnées à l'origine struct dans le rect.
Je soupçonne les cellules sont organisées au sein de la "cellule de taille moyenne' des sous-vues de la UITableView si vous voyez une image par rapport à ce point de vue.
Je n'ai pas de réelle réponse pour vous, mais, je vous suggère de vérifier UIScrollView du délégué de classe: UIScrollViewDelegate. Il répond à
– scrollViewDidScroll:
et vous pouvez manuellement vos décalage. UIScrollView est une super-classe de UITableView.Vous pouvez convertir les points (comme l'origine) à un autre point de vue de coordonnées à l'aide de UIView de
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view
méthode.