如上图所示,在 UIView B 上添加了 UIView A 和 UIView C。对于 B ClipToBounds 为 YES,因此红色区域不可见。
是否有可能获得 A & C 的可见矩形(用线条显示)
当我触摸视图 A 时,我需要在可见区域显示矩形。就是这样。
您可以使用CGRectIntersection()方法获得两个矩形的交集矩形
CGRect intersectionRect = CGRectIntersection(viewA.frame, viewB.frame);
if(CGRectIsNull(intersectionRect)) {
//Rects do not intersect
}
是的,您可以使用此功能:
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 的更多信息
我希望它对你有帮助......