-2

我有一个 UIView 子类( PopupView )和两个 xbis : PopupView.xib 和 PopupView~iphone5.xib 。

当我调用 xib 时:

    if ( screenHeight >= 568 ) {
        subviewArray = [[NSBundle mainBundle] loadNibNamed:@"PopupView~iphone5" owner:self options:nil];
    } else {
        subviewArray = [[NSBundle mainBundle] loadNibNamed:@"PopupView" owner:self options:nil];
    }

在 iOS 7 中,当使用 3.5 英寸手机进行测试时,它会加载正确的 PopupView.xib,而在 4 英寸手机上,它会加载 PopupView~iphone5.xib。但是在使用 iOS 6 和 3.5 英寸手机进行测试时,虽然代码从“else”语句传递并且理论上它加载了 PopupView.xib ,但它实际上返回了 iphone 5 xib (显示的视图是为 iphone5 设计的)和加载视图的高度是 548,而不是 480。

有什么建议么?

4

2 回答 2

0

固定的。我所需要的只是清理完整版本,并从模拟器中删除应用程序并重建。希望这个案例可以帮助其他面临类似问题并且不记得清理他的项目的人。

于 2014-06-28T13:08:14.050 回答
-2

尝试使用以下代码。

-(id) init{
    UIScreen* mainscr = [UIScreen mainScreen];
    CGSize screenSize = mainscr.currentMode.size;
    CGFloat screenHeight = screenSize.height;
    if (screenHeight == 1136) {
        self = [super initWithNibName:@"PopupView~iphone5" bundle:[NSBundle mainBundle]];
    }
    else
    {
        self = [super initWithNibName:@"PopupView" bundle:[NSBundle mainBundle]];
    }
}

它对我有用。

于 2014-06-28T12:38:27.900 回答