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

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

目前需要考虑以下情况:

  • alpha

  • hidden

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

  • 电话或者进入后台

  • 被其它视图遮挡

PHPz
PHPz

学习是最好的投资!

모든 응답(3)
迷茫

alpha, hide——이 두 UIView는 각각의 속성을 얻어 알 수 있습니다.
UIScrollView 하위 뷰——[scrollView convertRect:self.frame toView:[UIApplication sharedApplication].keyWindow];를 통해 화면을 기준으로 UIView의 프레임을 얻을 수 있으며, 이를 통해 판단할 수도 있습니다.
가 뷰 범위 내에서 백그라운드를 호출하거나 진입하는지 여부 - appdelegate에서 해당 프록시 메소드를 구현하면 프록시 메소드가 실행된 후 알림이 전송되므로 UIView는 알림을 수신하고
가 다른 보기에 의해 차단되었습니다. - 이것은 직접 제어하세요. 앱을 직접 작성하면 언제 차단되는지 확실히 알 수 있습니다.

阿神

/* rect2' is contained in ect1'이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. `ect2'
rect1' if the union of ect1'에 포함되어 있고 `ect2'는
`ect1'과 같습니다. */

CG_EXTERN bool CGRectContainsRect(CGRect ect1, CGRect ect2)

으아악
巴扎黑

다 나열하지 않았나요?

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!