2016-05-22 79 views
0

我有一個應用程序,其中有很多UIView's嵌套在一起。如何獲取UIView框架嵌套在UIView中 - ObjectiveC

我想找到關於控制器的一些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])); 
      } 

而且如果他們在裏面紅色查看其他視圖。

+0

'self.view.convertRect(redView.frame,fromView:self.whiteView)'? – ozgur

回答

2

你有正確的一般想法。

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

這樣,你只需要指定要轉換的觀點,並轉換到視圖:但是如果你使用內視的bounds,並使用self.view轉換更容易。你不需要考慮兩者之間的觀點。

+0

謝謝......它工作得很好......我試着找到redView的框架,並且工作得很好。我想問的一個問題是這種獨立於嵌套的方法..意味着我的視圖在UIView的10級更深將這項工作? – Dalvik

+0

是的,就是這一點。試試看看。 –

+0

是的,我在玩:) – Dalvik