我有一组视图,它们也是基本视图的子视图。我想有效地删除不在基本视图框架内的所有视图(即不可见)。
除了计算所有帧与基本视图帧的交集之外,我正在寻找找到最有效方法的建议。
答案 0 :(得分:1)
如果要在子视图不在基本视图框架内时删除子视图,则需要计算与基本视图的框架交点。或者,您可以使用bool CGRectContainsRect ( CGRect rect1, CGRect rect2 );
而不是完全计算交点。
如果您尝试执行此操作以优化子视图绘制,则可以考虑使用UIView
'scliptobounds
property,而不是删除子视图:
clipsToBounds
一个布尔值,用于确定子视图是否仅限于接收器的边界。
@property(非原子)BOOL clipsToBounds
讨论
将此值设置为YES会导致子视图被剪切到接收器的边界。如果设置为NO,则不会剪切其帧超出接收器可见边界的子视图。默认值为NO。