2016-05-22 7 views
0

私は一緒にネストされたUIView'sがたくさんあるアプリケーションを持っています。UIViewのフレームを取得する方法 - ObjectiveC

コントローラーに関しては、UIView'sというフレームが必要です。

私はセットアップの例があります:私はControllerにホワイトUIView w.r.tのフレームに見つけることができていますが、どのように私はコントローラにRedView WRTのフレームを見つけることができます

enter image description here

を。

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を使用している場合しかし、それは簡単です。 2つのビューの間にどのようなビューがあるのか​​考える必要はありません。

+0

ありがとう...それは素晴らしいことです...私はこれをRedViewのフレームを見つけるために試して、素晴らしい仕事をしています。私は質問したい1つの質問...このメソッドはネストから独立しています。私の見解はUIViewでは10レベル深いです。 – Dalvik

+0

はい、それは全体のポイントです。それを試してみてください。 –

+0

はい私はそれで遊んでいます:) – Dalvik

関連する問題