要求:方案简单易行,用户无感知(不能占用过高的 CPU)
背景:需要封装一个视图控件,该控件需要根据陀螺仪进行频繁的重绘。
目前需要考虑以下情况:
alpha
hidden
作为UIScrollView 的子视图,被滚动到视图范围外
电话或者进入后台
被其它视图遮挡
迷茫2017-04-18 09:57:01
alpha, hide——이 두 UIView는 각각의 속성을 얻어 알 수 있습니다.
UIScrollView 하위 뷰——[scrollView convertRect:self.frame toView:[UIApplication sharedApplication].keyWindow];
를 통해 화면을 기준으로 UIView의 프레임을 얻을 수 있으며, 이를 통해 판단할 수도 있습니다.
가 뷰 범위 내에서 백그라운드를 호출하거나 진입하는지 여부 - appdelegate에서 해당 프록시 메소드를 구현하면 프록시 메소드가 실행된 후 알림이 전송되므로 UIView는 알림을 수신하고
가 다른 보기에 의해 차단되었습니다. - 이것은 직접 제어하세요. 앱을 직접 작성하면 언제 차단되는지 확실히 알 수 있습니다.
阿神2017-04-18 09:57:01
/* rect2' is contained in
ect1'이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. `ect2'
는 rect1' if the union of
ect1'에 포함되어 있고 `ect2'는
`ect1'과 같습니다. */
CG_EXTERN bool CGRectContainsRect(CGRect ect1, CGRect ect2)
으아악