84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
要求:方案简单易行,用户无感知(不能占用过高的 CPU)背景:需要封装一个视图控件,该控件需要根据陀螺仪进行频繁的重绘。
目前需要考虑以下情况:
alpha
hidden
作为UIScrollView 的子视图,被滚动到视图范围外
电话或者进入后台
被其它视图遮挡
学习是最好的投资!
alpha,hidden———这两个UIView获取自己的属性就可以知道了UIScrollView子视图———可以通过[scrollView convertRect:self.frame toView:[UIApplication sharedApplication].keyWindow];获取到UIView相对于屏幕的frame,通过具体数据也可以判断是否在视图范围内电话或者进入后台———通过实现appdelegate中的相应代理方法,代理方法执行后发个通知,让UIView接收通知也可以知道被其他视图遮挡———这个东西就自己控制吧,自己写的app,什么时候会出现遮挡自己肯定是知道的
[scrollView convertRect:self.frame toView:[UIApplication sharedApplication].keyWindow];
/* Return true if rect2' is contained in rect1', false otherwise. `rect2' is contained in rect1' if the union of rect1' and `rect2' is equal to `rect1'. */
rect2' is contained in
rect1' if the union of
CG_EXTERN bool CGRectContainsRect(CGRect rect1, CGRect rect2)
CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);
你这不是都列出来了吗?
alpha,hidden———这两个UIView获取自己的属性就可以知道了
UIScrollView子视图———可以通过
[scrollView convertRect:self.frame toView:[UIApplication sharedApplication].keyWindow];
获取到UIView相对于屏幕的frame,通过具体数据也可以判断是否在视图范围内电话或者进入后台———通过实现appdelegate中的相应代理方法,代理方法执行后发个通知,让UIView接收通知也可以知道
被其他视图遮挡———这个东西就自己控制吧,自己写的app,什么时候会出现遮挡自己肯定是知道的
/* Return true if
rect2' is contained in
rect1', false otherwise. `rect2'is contained in
rect1' if the union of
rect1' and `rect2' is equal to`rect1'. */
CG_EXTERN bool CGRectContainsRect(CGRect rect1, CGRect rect2)
你这不是都列出来了吗?