2012-11-08 33 views
1

我一直在寻找答案,但还没有。将多个xib链接到一个控制器

我想解决一个问题,我有一个自动调整大小的视图。如果3GS等...它使用picture.png,如果使用[email protected]

但是,当尺寸调整发生时,iPhone 4上的背景会延伸到底部边界下方,因此会覆盖背景的一部分。

在iphone 5上,它完全适合,但按钮不调整,他们保持原样,如果屏幕是从3G(同样的事情,如果iphone 4是模拟器)。

如果你有上述问题的解决方案,我是所有的耳朵,我是非常新的xcode,我只是想学习。

作为一个工作,我周围的人想用下面的代码检查屏幕大小,然后加载该屏幕内置了厦门国际银行,但我的应用程序崩溃:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil; 

CGRect screenBound = [[UIScreen mainScreen] bounds]; 
CGSize screenSize = screenBound.size; 
CGFloat screenHeight = screenSize.height; 

if (screenHeight == 568){ 
    nibNameOrNil = (NSString*)@"main5"; 
    self = [self initWithNibName:nibNameOrNil bundle:nil]; 
    if (self) { 
     // Custom initialization 
    } 

}else{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
} 

} 
return self; 

谢谢你在先进

调试

自Mainscreencantroller * 00000000 nibNameOrNil的NSString * 0x02a01196 的NSObject NSObject的
ISA类0x656a 626F [0]类
nibBundleOrNil __NSArrayM * 0x0a55d3e0

+0

您调用[self initWithNibName:nibNameOrNil bundle:nil] ;.这应该是超级 – NSAddict

+1

正确的解决方案是了解管理视图大小和位置的新布局约束系统。你不需要有两个不同的xib文件。此外,iPhone 4上的屏幕尺寸与3和5相同。 – rdelmar

回答

0

确定摆弄一段时间后,我决定通过控制Grect边界接近。

下面是代码,

不过我还是想知道,如果你能多xibs加载到一个控制器

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 

{

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 

    CGRect screenBound = [[UIScreen mainScreen] bounds]; 
    CGSize screenSize = screenBound.size; 
    CGFloat screenWidth = screenSize.width; 
    CGFloat screenHeight = screenSize.height; 
    NSLog(@"screenheight =%f", screenHeight); 
    if(screenHeight == 568){ 

     screenBound.origin.y = -44; 
     self.view.bounds = screenBound; 

    }else if (screenHeight ==480){ 
     self.view.bounds = screenBound; 
    } 
     // Custom initialization 
} 

回归自我;

相关问题