将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的更多信息
我希望它对你有帮助……