根据设备屏幕从 xib 文件中获取大小参数
Posted
技术标签:
【中文标题】根据设备屏幕从 xib 文件中获取大小参数【英文标题】:Get size parameters from xib files depending on device screen 【发布时间】:2015-04-07 14:09:46 【问题描述】:我有一个 xib 文件,其中 UIView 对屏幕的限制有一些限制。
由于该应用程序正在开发为在 iPad 和 iPhone 上运行,我如何在运行时获取 UIView 的大小?我已经尝试获取 UIView 插座的 size 参数,但是返回的值与最初在 xib 文件中设置的值相对应。
谢谢
【问题讨论】:
您是否尝试在出现视图之前或之后获取它?未在 viewDidLoad 上设置视图 尝试在 viewDidAppear 中获取它 我也尝试从 viewDidAppear 获取,但结果相同。 【参考方案1】:在您的 xib 文件中,您应该设置约束以将 UIView 附加到控制器的大小。这样,根据屏幕的大小,它会自动调整到适当的大小,您就可以从代码中获取帧值。
一旦将约束设置为根据设备屏幕调整大小,您可以执行类似以下操作:
- (void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
CGRect frame = self.mycustomview.frame; // replace with your IBOutlet
【讨论】:
嗯,有趣...尝试打印出不同区域的框架大小,并查看它们何时更改以适合屏幕。viewWillAppear
、viewDidAppear
、viewWillLayoutSubviews
和 viewDidLayoutSubviews
。在其中之一中,如果约束设置正确,将显示新大小...如果没有,那么可能检查所有内容是否正确连接并且约束是否正确?
在一个新项目中,它似乎可以将代码放在 viewDidLayoutSubviews 中。所以旧项目的代码一定有问题。谢谢。【参考方案2】:
在 viewDidLayoutSubviews 方法中你会找到正确的屏幕尺寸。
【讨论】:
以上是关于根据设备屏幕从 xib 文件中获取大小参数的主要内容,如果未能解决你的问题,请参考以下文章