将UIView的可见矩形添加为子视图

在此处输入图像描述

如上图所示UIView A和UIView C在UIView B上添加。对于B ClipToBounds为YES,因此红色区域不可见。

是否可以获得A&C的可见矩形(用线条显示)

当我接触例如View A时,我需要在可见区域显示矩形。

在此处输入图像描述

您可以使用CGRectIntersection()方法获取两个rects的交集矩阵

CGRect intersectionRect = CGRectIntersection(viewA.frame, viewB.frame); if(CGRectIsNull(intersectionRect)) { //Rects do not intersect } 

是的,您可以使用此function:

 CGRect CGRectIntersection ( CGRect r1, CGRect r2 ); 

如果你确切地告诉你想要做什么可能是更好的方法,例如我需要类似的东西而不是手动裁剪我只是将UIView B内容捕获为图像。

用于此

 [UIView convertRect:<#(CGRect)#> fromView:<#(UIView *)#>] [UIView convertRect:<#(CGRect)#> toView:<#(UIView *)#>] 

和CGRectIntersection函数

关于touchesEnded:你可以找到它的方法如下…

  -(void) touchesEnded:(NSSet *) touches { if(CGRectIntersectsRect([ViewA frame], [ViewB frame]) { //Do something here } } 

从此链接阅读有关RectInterSect的更多信息

我希望它对你有帮助……