如上图所示UIView A&在UIView B上添加了UIView C.对于B ClipToBounds为YES,因此红色区域不可见。
是否可以获得A& A的可见矩形C(以行显示)
当我触摸时,我需要在可见区域显示矩形,例如视图A.就是这样。
答案 0 :(得分:3)
您可以使用CGRectIntersection()方法
获取两个rects的交集矩阵CGRect intersectionRect = CGRectIntersection(viewA.frame, viewB.frame);
if(CGRectIsNull(intersectionRect)) {
//Rects do not intersect
}
答案 1 :(得分:2)
是的,您可以使用此功能:
CGRect CGRectIntersection (
CGRect r1,
CGRect r2
);
如果你确切地告诉你想要做什么可能是更好的方法,例如我需要类似的东西而不是手动裁剪我只是将UIView B内容捕获为图像。
答案 2 :(得分:0)
用于此
[UIView convertRect:<#(CGRect)#> fromView:<#(UIView *)#>]
[UIView convertRect:<#(CGRect)#> toView:<#(UIView *)#>]
和CGRectIntersection函数
答案 3 :(得分:0)
在touchesEnded:
方法上你可以找到它,如下所述..
-(void) touchesEnded:(NSSet *) touches {
if(CGRectIntersectsRect([ViewA frame], [ViewB frame]) {
//Do something here
}
}
了解有关RectInterSect的更多信息
我希望它对你有帮助......