2015-04-07 141 views
0

我有一个xib文件,UIView对屏幕的限制有一些限制。从xib文件中获取大小参数,具体取决于设备屏幕

由于该应用程序正在开发在iPhone上运行的iPhone,我怎样才能在运行时获得UIView的大小?我已经尝试获取UIView出口的大小参数,但返回的值与最初在xib文件中设置的值相对应。

感谢

+1

你设法得到它出现在视图之前之后? viewDidLoad没有设置视图 –

+0

尝试在viewDidAppear中获取它 –

+0

我也尝试从viewDidAppear中获取,但获得的结果相同。 – RFG

回答

0

在你的XIB文件,你应该建立约束,以UIView的连接到控制器的尺寸。这样,根据屏幕的大小,它会自动调整到适当的大小,您将能够从代码中获取帧值。

enter image description here

一旦限制被设置为调整根据设备屏幕,你可以做类似下面的东西:

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    CGRect frame = self.mycustomview.frame; // replace with your IBOutlet 
} 
+0

对不起,但不适合我。 – RFG

+0

嗯,有趣...尝试在不同区域打印出框架的大小,并查看它们何时更改为适合屏幕。 'viewWillAppear','viewDidAppear','viewWillLayoutSubviews'和'viewDidLayoutSubviews'。其中之一,如果约束设置正确,将显示新的大小...如果没有,那么也许检查一切正确连接和约束是正确的? –

+0

在新的项目中,它似乎将代码放入viewDidLayoutSubviews中。所以它在旧项目的代码中肯定是错的。谢谢。 – RFG

相关问题