iphone ipad nib返回相同的self.view.frame.size.width问题

时间:2013-05-02 09:05:52

标签: iphone ios objective-c

我想获得屏幕的当前尺寸。 我使用了self.view.frame.size.width

NSLog(@"%f",self.view.frame.size.width)

所以当我在iphone模拟器中运行时,它将返回320 但是,当我在ipad模拟器中运行时,它仍会返回320

我有iphone和ipad的不同nib文件 他们正在获取正确的nib文件,而目标系列是ipad / iphone 它应该返回768,所以我可以根据它调整图像大小。

任何想法?

5 个答案:

答案 0 :(得分:2)

尝试使用这些

CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width;
CGFloat screenheight = [UIScreen mainScreen].bounds.size.height;

但是UIScreen没有考虑当前的界面方向。 您还必须检查

或直接检查设备类型

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

答案 1 :(得分:1)

将目标设备更改为通用,如图所示

enter image description here

答案 2 :(得分:0)

在iPad模拟器中运行时是否使用了iPad Nib文件?也许你想通过在iPad的NIB中更改某些内容(可能更改按钮的位置)进行检查。这样,当应用程序运行时,您可以检查它是否是iPhone的NIB或iPad的笔尖。

答案 3 :(得分:0)

首先你检查一下: -

if(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone) 和

if(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad)

分配文件时: -

对于iPhone: - ABController * controller = [[ABController alloc] initWithNibName:@“ABController~iPhone”bundle:nil];

对于iPad: - ABController * controller = [[ABController alloc] initWithNibName:@“ABController~iPad”bundle:nil];

答案 4 :(得分:0)

确保

 self.view.autoresizesSubviews=NO;
 Imageview.autoresizingMask=NO;

设为NO。

那会做你的工作