Ios 如何在UIView';s-ObjectiveC

Ios 如何在UIView';s-ObjectiveC,ios,objective-c,iphone,xcode,uiview,Ios,Objective C,Iphone,Xcode,Uiview,我有一个应用程序,其中有许多UIView的嵌套在一起 我想找到一些UIView的关于控制器的框架 我设置了一个示例: 我可以找到白色UIVieww.r.t到Controller的帧,但是如何找到RedViewwrt到Controller的帧呢 用于查找白色视图的框架的代码: - (void)viewDidAppear:(BOOL)animated { NSLog(@"--OuterFrame---%@",NSStringFromCGRect(sel

我有一个应用程序,其中有许多
UIView的
嵌套在一起

我想找到一些
UIView的
关于控制器的框架

我设置了一个示例:

我可以找到白色
UIView
w.r.t到
Controller
的帧,但是如何找到
RedView
wrt到Controller的帧呢

用于查找白色视图的框架的代码:

      - (void)viewDidAppear:(BOOL)animated
      {
           NSLog(@"--OuterFrame---%@",NSStringFromCGRect(self.grayView.frame));
           NSLog(@"--InnerFrame---%@",NSStringFromCGRect(self.whiteView.frame));

           NSLog(@"---Frame With resepect to self.view --%@",NSStringFromCGRect([self.grayView convertRect:self.whiteView.frame toView:self.view]));
          }

如果他们的视图是红色视图中的另一个视图呢。

您的总体思路是正确的。但是,如果使用内部视图的
边界
,并使用
self.view
转换:

// assumes innerView is a view somewhere underneath self.view
CGRect innerViewRectRelativeToController = 
    [self.view convertRect:innerView.bounds fromView:innerView];

这样,您只需要指定要从中转换的视图和要转换到的视图。您无需考虑这两者之间的视图。

self.view.convertRect(redView.frame,fromView:self.whiteView)
?谢谢……它工作得很好……我尝试着找到redView的框架,效果很好。我想问的一个问题是……这个方法独立于嵌套吗……意味着我的视图在UIView中更深10层。这个方法有效吗?是的,我正在使用它:)