我目前正在使用[[UIScreen mainScreen] bounds].size.width和height来获取屏幕宽度和高度,以便从服务器获取新图像(填充整个屏幕)。我的问题是,边界似乎不会随着方向的改变而改变。因此,如果我旋转设备,那么即使设备现在处于横向,它仍然会给出我的纵向宽度/高度。我不想硬编码基于当前方向的屏幕宽度/高度。有没有一种方法可以检查屏幕的宽度和高度,以正确反映方向的变化?
发布于 2011-08-13 01:26:31
您可以通过以下方式获取宽度和高度
int h = self.view.frame.size.height;
int w = self.view.frame.size.width;发布于 2012-04-26 17:19:44
最好的方法可能是:
CGSize appSize = [UIApplication sharedApplication].keyWindow.rootViewController.view.bounds.size;对于height使用appSize.height,对于width使用appSize.width。根据状态栏和wantsFullscreen设置,这将返回始终充满整个屏幕的最上面视图的方向调整后的大小,但可能会排除状态栏。
发布于 2011-08-13 01:19:36
[UIScreen mainScreen].bounds.size返回未旋转的边界。您可以在适当的屏幕UIView上使用convertRect:fromView:方法(为fromView传递nil )来调整旋转等。
https://stackoverflow.com/questions/7043736
复制相似问题