查找视图外部子视图的有效方法

时间:2011-06-26 15:31:01

标签: iphone objective-c

我有一组视图,它们也是基本视图的子视图。我想有效地删除不在基本视图框架内的所有视图(即不可见)。

除了计算所有帧与基本视图帧的交集之外,我正在寻找找到最有效方法的建议。

1 个答案:

答案 0 :(得分:1)

如果要在子视图不在基本视图框架内时删除子视图,则需要计算与基本视图的框架交点。或者,您可以使用bool CGRectContainsRect ( CGRect rect1, CGRect rect2 );而不是完全计算交点。

如果您尝试执行此操作以优化子视图绘制,则可以考虑使用UIView'scliptobounds property,而不是删除子视图:

  

clipsToBounds

     

一个布尔值,用于确定子视图是否仅限于接收器的边界。

     

@property(非原子)BOOL clipsToBounds

     

讨论

     

将此值设置为YES会导致子视图被剪切到接收器的边界。如果设置为NO,则不会剪切其帧超出接收器可见边界的子视图。默认值为NO。