如何获取嵌套在 UIView 中的 UIView 框架 - Objective C
Posted
技术标签:
【中文标题】如何获取嵌套在 UIView 中的 UIView 框架 - Objective C【英文标题】:How to get frame of UIView Nested in UIView's - ObjectiveC 【发布时间】:2016-05-22 04:53:50 【问题描述】:我有一个应用程序,其中有很多 UIView's
嵌套在一起。
我想找到一些UIView's
相对于Controller的框架。
我已经设置了一个例子:
我可以找到白色 UIView
w.r.t 到 Controller
的框架,但我如何才能找到 RedView
wrt 到控制器的框架。
查找White View
的Frame的代码:
- (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.convertRect(redView.frame, fromView:self.whiteView)
?
【参考方案1】:
您的总体思路是正确的。但是如果你使用内部视图的bounds
,并使用self.view
进行转换会更容易:
// assumes innerView is a view somewhere underneath self.view
CGRect innerViewRectRelativeToController =
[self.view convertRect:innerView.bounds fromView:innerView];
这样你只需要指定要转换的视图和要转换到的视图。您无需考虑两者之间的视图。
【讨论】:
谢谢...它工作得很好...我尝试这个来找到 redView 的框架并且工作得很好。我想问的一个问题......这种方法是否独立于嵌套......意味着我的视图在 UIView 中更深 10 级,这可行吗? 是的,我正在玩它:)以上是关于如何获取嵌套在 UIView 中的 UIView 框架 - Objective C的主要内容,如果未能解决你的问题,请参考以下文章
在另一个自定义 UIView 中设置/更改嵌套自定义 UIView 的变量
setTitle 和 setBackgroundImage 不适用于嵌套在 UIView 中的 UIButton