ios - UIView 如何判断自己不在用户的可视范围呢?
PHPz
PHPz 2017-04-18 09:55:01
0
3
670

要求:方案简单易行,用户无感知(不能占用过高的 CPU)
背景:需要封装一个视图控件,该控件需要根据陀螺仪进行频繁的重绘。

目前需要考虑以下情况:

  • alpha

  • hidden

  • 作为UIScrollView 的子视图,被滚动到视图范围外

  • 电话或者进入后台

  • 被其它视图遮挡

PHPz
PHPz

学习是最好的投资!

répondre à tous(3)
迷茫

alpha, caché——Vous pouvez connaître ces deux UIViews en obtenant leurs propres propriétés
Sous-vue UIScrollView——Vous pouvez obtenir le cadre de UIView par rapport à l'écran via [scrollView convertRect:self.frame toView:[UIApplication sharedApplication].keyWindow];, et vous pouvez également le juger via. données spécifiques. Que
appelle ou entre dans l'arrière-plan dans la plage d'affichage - en implémentant la méthode proxy correspondante dans appdelegate, une notification sera envoyée après l'exécution de la méthode proxy, afin que UIView puisse recevoir la notification et également savoir que
est bloqué par d'autres vues - contrôlez simplement les choses par vous-même. Si vous écrivez une application par vous-même, vous saurez certainement quand elle sera bloquée

.
阿神

/* Renvoie vrai si rect2' is contained in rect1', faux sinon. `rect2'
est contenu dans rect1' if the union of rect1' et `rect2' est égal à
`rect1'. */

CG_EXTERN bool CGRectContainsRect(CGRect rect1, CGRect rect2)

CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);
巴扎黑

Vous ne les avez pas tous répertoriés ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!