iOS 6 loadNibNamed在3.5英寸手机中加载iphone5的笔尖

时间:2014-06-28 12:25:14

标签: ios iphone loadnibnamed

我有一个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英寸手机进行测试时,尽管代码仍然来自"否则"语句和理论上它加载PopupView.xib,它实际上返回iphone 5 xib(视图diplayed是专为iphone5设计的),加载的视图的高度是548,而不是480.

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:-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]];
    }
}

这对我有用。