获取UIView的可见矩形作为子视图添加

时间:2013-07-17 10:00:11

标签: iphone ios

enter image description here

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

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

当我触摸时,我需要在可见区域显示矩形,例如视图A.就是这样。

enter image description here

4 个答案:

答案 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
    }
  }

This Link

了解有关RectInterSect的更多信息

我希望它对你有帮助......