问题描述
我正在尝试布局我的xib,以便布局适合iphone 5(4英寸视网膜)和3.5设备。
I am trying to layout my xib so that layout fits in both iphone 5 (4 inches retina) and 3.5 devices.
因为我必须支持IOS-5,所以我不能使用autolayout。我必须使用spring和Struts。
Because I have to support IOS-5 I cannot use autolayout. I have to use springs and Struts.
我在interface-builder中尝试了所有内容。但要么我的观点超出了iphone-3.5英寸的底部,要么完全没有填充iphone-4英寸视网膜。
I tried everything in interface-builder. But either my view is going beyond the bottom of iphone-3.5-inch or not filling completely the iphone-4-inch-retina.
有人可以提示如何让xib与这两种设备兼容吗?
Can someone give a hint how to actually make an xib compatible to both the devices?
为了更清晰我正在添加屏幕截图:
For more clarity I am adding screenshots:
当我在属性检查器中设置大小为3.5时:
When I set size 3.5 in attribute inspector:
时,它会在iphone-5中查找。按钮下面有一个空格:
it looks in iphone-5. There is a space below the buttons:
如果我在界面构建器中设置了4英寸的大小。您可以看到底部按钮在iphone-4中不可见。
If I set size 4 inch in interface builder. You can see that bottom buttons are not visible in iphone-4.
所以你会问我正在使用的设置是什么。以下是:
So you will ask what are the settings I am using. Here are they:
推荐答案
-
为UIviewController添加新类别并在.h文件中添加此代码
You add new category for UIviewController and add this code in .h file
- (id)initWithNibNameforIphone4:(NSString *)nibNameOrNil4 NibNameforIphone5:(NSString *)nibNameOrNil5 NibNameforIpad:(NSString *)nibNameOrNilpad bundle:(NSBundle *)nibBundleOrNil;
在.m文件中添加此代码
Add this code in your .m file
- (id)initWithNibNameforIphone4:(NSString *)nibNameOrNil4 NibNameforIphone5:(NSString *)nibNameOrNil5 NibNameforIpad:(NSString *)nibNameOrNilpad bundle:(NSBundle *)nibBundleOrNil
{
if (self = [super init])
{
self = [self initWithNibName:[self CheckDeviceIphone4:nibNameOrNil4 Iphone5:nibNameOrNil5 Ipad:nibNameOrNilpad] bundle:nibBundleOrNil];
}
return self;
}
-(NSString *)CheckDeviceIphone4:(NSString *)iphone4 Iphone5:(NSString *)iphone5 Ipad:(NSString *)ipad {
return ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) ? ipad :([[UIScreen mainScreen] bounds].size.height == 568) ? iphone5 :iphone4;
}
打开YouProject-Prefix.pch文件并在此处导入您的类别
Open YouProject-Prefix.pch file and import your category here
现在你只需在这样的项目中使用它
now you just use this in all over project like this
self.firstView=[[firstView alloc]initWithNibNameforIphone4:@"firstView4" NibNameforIphone5:@"firstView" NibNameforIpad:@"firstViewIpad" bundle:[NSBundle mainBundle]];
谢谢和任何问题然后评论并且不要忘记upvote: - )
thanks and any question then comment and dont forget to upvote :-)
\
这篇关于如何使xib兼容iphone 5和iphone 4设备的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!