我想知道,如何在视图的frame尺寸被自动调整以适应其父视图时(在viewDidLoad、viewWillAppear、viewDidAppear中),获取该尺寸?
-(void)layoutSubViews
方法,请参考:When is layoutSubviews called?。- (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);
}
我尝试过 layoutSubviews
,但它被调用了多次,这在我需要自动大小的框架以创建 CGContext
进行绘制时会出问题。
我使用的解决方法是在我的自定义 UIView
上公开一个 init
方法,让其父视图控制器在其 viewWillAppear
中调用。
我希望有一种方法可以在自定义 UIView
的实现中完成所有这些操作,但它使我困惑(还有 Google 和苹果的文档和 SO)。
NSLog(@"%f; %f; %f; %f;", yourView.frame.origin.x, yourView.frame.origin.y, yourView.frame.size.width, yourView.frame.size.height);
这是如何获取视图框架的方法
layoutSubviews
会被调用多次,所以我不能使用它来创建一个带有最终frame
的CGContext
:/ - Brenden