我有一个应用程序,其中有很多UIView's
嵌套在一起。
我想找到关于Controller的一些UIView's
的框架。
我已经设置了一个例子:
我能够找到白色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 :(得分:2)
你有正确的总体思路。但是如果您使用内部视图bounds
并使用self.view
进行转换,则会更容易:
// assumes innerView is a view somewhere underneath self.view
CGRect innerViewRectRelativeToController =
[self.view convertRect:innerView.bounds fromView:innerView];
这样您只需要指定要转换的视图,以及要转换为的视图。您无需考虑两者之间的观点。