0

我创建了一个UIView,有两个xibs支持 iphone5 和 iphone4。视图宽度为 (iphone5 - 470) 和 (iphone5 - 400)。我已通过检查 iphone5 或 iphone4 的条件来初始化此视图。但是在运行应用程序时,它似乎占用了iphone5。

CategoryView *puzzleView = [[CategoryView alloc] initWithFrame:CGRectMake(0, startY, levelScrollView.frame.size.width, 190)];
BOOL isiPhone = IS_IPHONE5([[UIScreen mainScreen] bounds].size.height);
if (isiPhone)
{
    puzzleView = [[[NSBundle mainBundle] loadNibNamed: @"CategoryView5"  owner:self options:nil] objectAtIndex:0];
}
else 
{
    puzzleView = [[[NSBundle mainBundle] loadNibNamed: @"CategoryView-iphone"  owner:self options:nil] objectAtIndex:0];
}
4

1 回答 1

1

问题出在这一行:

BOOL isiPhone = IS_IPHONE5([[UIScreen mainScreen] bounds].size.height);

不,您只是在检查是否size.height不是0

更改为:

BOOL isiPhone = IS_IPHONE5([[UIScreen mainScreen] bounds].size.height > 480.f);

回合一个不应该这样做。只制作一个视图并让它随着屏幕大小而增长是一个更好的选择。以防 Apple 决定添加其他屏幕尺寸,您无需更改代码中的任何内容。

于 2013-04-18T11:25:27.383 回答