如何在 xcode4.3 中获取和修改显示屏幕尺寸

Posted

技术标签:

【中文标题】如何在 xcode4.3 中获取和修改显示屏幕尺寸【英文标题】:how can I get and modify the display screen size in xcode4.3 【发布时间】:2013-10-20 00:59:19 【问题描述】:

我正在开发一个应用程序,我希望它可以在 iPhone 4 和 5 上使用,因为 iPhone 5 已将其尺寸更改为 4 英寸,所以我希望我的应用程序可以支持 4 英寸,但在 Xcode4 .3 没有自动布局,正因为如此,不知有没有办法把显示屏幕尺寸改成4寸,非常感谢!

【问题讨论】:

用代码而不是 IB 制作你的应用 你为什么使用 xcode 4.3? 升级到 4.6 或更高版本并使用这个:***.com/a/18132334/2535467. 即使没有自动布局,仍然有自动调整大小。 Autoresize 是在自动布局之前使用的,用于管理视图的大小和放置,尽管它远没有自动布局那么复杂。根据您的应用程序,它可能会起作用。但是,如果可以,我建议您更新 Xcode。 最后,我将Xcode更新到4.5,解决这个问题很容易 【参考方案1】:

您可以使用以下代码获取屏幕尺寸:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
UIViewController *ViewController;
[self loadall];
if (screenBounds.size.height == 568) 
    NSLog(@"User is using an iPhone 5+");
    BOOL isUsingiPhone5 = YES;

else
    NSLog(@"User is using an iPhone 4s-");
    BOOL isUsingiPhone5 = NO;

然后您可以相应地移动内容,CGRect 以下是根据屏幕尺寸移动广告横幅视图的示例:

-(void)bannerViewDidLoadAd:(ADBannerView *)banner 
CGRect bannerFrame = banner.frame;
CGRect screenBounds = [[UIScreen mainScreen] bounds];
UIViewController *ViewController;
if (screenBounds.size.height == 568) 
    //iPhone5+
    bannerFrame.origin.x = 0;
    bannerFrame.origin.y = 518;
    banner.frame = bannerFrame;

else
    //iPhone4s-

NSLog(@"Showing ad, internet connection found.");
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1];
[banner setAlpha:1];
[UIView commitAnimations];

else
    [banner setAlpha:0];

确保使用ViewController 作为UIViewController 变量,即使您的默认视图控制器命名为RootViewController 之类的名称。

希望这会有所帮助。如果您有任何问题,请随时发表评论!

【讨论】:

以上是关于如何在 xcode4.3 中获取和修改显示屏幕尺寸的主要内容,如果未能解决你的问题,请参考以下文章

如何获取所有纸张尺寸名称和相应的像素尺寸?

如何一劳永逸地以编程方式获取android屏幕尺寸?

如何在OpenGL中自动选择屏幕尺寸

如何在 init() 之前获取屏幕尺寸?

java 获取屏幕/显示尺寸

如何使用 Qt 获取屏幕尺寸?