Comment puis-je savoir si une UIView est visible et sur l'écran?
Si j'ai un UIView
(ou UIView
sous-classe) qui est visible, comment puis-je savoir si c'est actuellement affichée à l'écran (contrairement, par exemple, dans une section d'un défilement de l'affichage, qui est actuellement hors de l'écran)?
Peut-être vous donner une meilleure idée de ce que je veux dire, UITableView
a un couple de méthodes pour la détermination de l'ensemble des cellules visibles. Je suis à la recherche du code qui peut prendre une décision similaire pour tout UIView
.
OriginalL'auteur Mike McMaster | 2008-09-26
Vous devez vous connecter pour publier un commentaire.
Pas essayé encore. Mais
CGRectIntersectsRect()
,-[UIView convertRect:to(from)View]
et-[UIScrollView contentOffset]
semblent être vos blocs de construction de base ici.UIScrollView
ajuste ses limites comme vous le faites défiler jusqu'alorsconvertRect:[to/from]View:
prend automatiquement en compte l'état de défilement des vues dans la hiérarchie. Pas besoin de faire référence àcontentOffset
— vous pouvez simplement convertir le un rect directement dans l'espace de coordonnées de l'autre.OriginalL'auteur schwa
Voici ce que j'ai utilisé pour vérifier les UIViews étaient visibles dans un UIScrollView:
OriginalL'auteur aoakenfo
J'ai récemment eu à vérifier si mon point de vue a été à l'écran. Cela a fonctionné pour moi:
Il ne fonctionne pas si l'écran est à l'horizontale
OriginalL'auteur Steven Hepting
si vous êtes d'abord inquiet au sujet de sortir un objet qui n'est pas le point de vue de la hiérarchie, vous pouvez le tester pour voir si elle a un superview, comme dans:
OriginalL'auteur ecume des jours