autoresize完成后如何获取帧大小

我想知道,如何以及何时(viewDidLoad,viewWillAppear,viewDidAppear)我可以得到一个UIViews框架的大小已被自动化,以适应其partent视图?

从你的问题中不清楚为什么你想要它,但我想是布局你的子视图。 幸运的是,苹果知道你会想要做到这一点,并实现-(void)layoutSubViews看到这个: 什么时候layoutSubviews打电话?

我尝试了layoutSubviews ,但它被调用不止一次,这是一个问题,当我需要自动resize的框架,以创build一个CGContext绘制。

我使用的解决scheme是暴露在我的自定义UIViewinit方法的父视图控制器调用其viewWillAppear

我希望有一种方法可以在自定义的UIView的实现中完成这一切,但是它避开了我(以及Google和Apple的文档和SO)。

 - (void)viewDidAppear:(BOOL)animated { CGFloat uIViewWidth = self.uIView.bounds.size.width; CGFloat uIViewHeight = self.uIView.bounds.size.height; CGRect uIViewSize = CGRectMake(0, 0, uIViewWidth, uIViewHeight); } 
  NSLog(@"%f; %f; %f; %f;", yourView.frame.origin.x, yourView.frame.origin.y, yourView.frame.size.width, yourView.frame.size.height); 

这是如何得到你的看法框架