如何在UIView中嵌套UIView的框架 - ObjectiveC

时间:2016-05-22 04:53:51

标签: ios objective-c iphone xcode uiview

我有一个应用程序,其中有很多UIView's嵌套在一起。

我想找到关于Controller的一些UIView's的框架。

我已经设置了一个例子:

enter image description here

我能够找到白色UIView w.r.t到Controller的帧,但我怎样才能找到RedView wrt到控制器的帧。

找到White View的框架

的代码
      - (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]));
          }

如果他们是红色视图内的另一个视图怎么办。

1 个答案:

答案 0 :(得分:2)

你有正确的总体思路。但是如果您使用内部视图bounds并使用self.view进行转换,则会更容易:

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

这样您只需要指定要转换的视图,以及要转换为的视图。您无需考虑两者之间的观点。