将Ipone项目转到Ipad平台以及开发同时支持这两个平台的项目 .
2013-03-05 20:05
267 查看
开发同时支持这两个平台的项目:
1、 是在创建新项目的时候,创建基于Window-based Application,窗口中间product项选择Universal(只有基于Window-based才有这个选项)。创建完成如下图:
不同之处在于:少了Resouces Folder,增加了iPad,iPhone,Shared Folder。对iPhone、iPad加以了区分,这种模式笔者认为对于底层数据接口文件、类等共用的可放在Shared Folder,但对于上层类,XIB相应的要创建单独的两份(且不能同名),一种基于iphone,一种基于iPad。两者无关系,所以也不用在代码里进行区分。
2、 是完全用代码实现的项目,通过在代码里识别程序运行的设备,之后你可以根据对应的设备,做响应的试图显示操作。如:
#if(__IPHONE_OS_VERSION_MAX_ALLOWED>= 30200)
if (UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPad) {
UILabel*lab = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 100)];
lab.text= @" Runing as an iPad application ";
[self.viewaddSubview:lab];
[lab release];
}
else{
UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(50, 50, 100, 50)];
lab.text= @" Running as an iPhone/iPod touch application";
[self.viewaddSubview:lab];
[labrelease];
}
#endif
3、 是针对基于xib的iphone项目,建立两套xib文件,根据程序运行时的运行设备,选择对应的xib文件。
但在我做的Demo中,并不能智能地选择对应xib文件,还是须代码判断设备选择相应xib,稍后做详解。
第3种方法也可以实现将ipone项目转到ipad平台
无论是已有的iphone项目还是新创建的项目(作iphone项目创建)通过以下步骤转到iPad平台。
一、 创建aView-based Application (iPhone) project,命名Demo,然后把此iphone程序升级为Universal程序。点击菜单栏“Project”-〉“UpgradeCurrent Target for iPad…”-〉选择“OneUniversal application”,这样做 Universal 版本,主要是针对mainWindow.xib,会自动生成Resources-iPad文件夹,里面有一个 mainWindow-iPad.xib文件。
在.plist里,应该会有main nib file base name这个Key,对应MainWindow,就是iphone程序的入口;同时会有main nib file base name(iPad),对应MainWindow-iPad这项,如果没有,自己建立一个,universal版本会多出这项,选择即可。然后须自己建立一个xib文件,来作为iPad入口。对应于上面iphone的DemoViewController.xib文件,创建基于iPad名为DemoViewController-iPad的View XIB。 注意:把MainWindow-iPad.xib里的DemoViewController下面Attributes选项卡下NIB Name设置为”DemoViewController-iPad”。此处就设置好了iPad入口。
技巧:对于已有的iPhone版的XIB文件,也可以这样生成iPad XIB,如:打开这个DemoViewController.xib文件,然后点击File ->Create iPad version(usingautosizing masks),会自动生成一个iPad版的DemoViewController.xib,然后另存为名字的iPad的XIB文件,这里命名为DemoViewController-iPad.xib,然后拖到项目里就完成了。
在Build ->Targeted Device Family处,设置为”iPhone/iPad”;
到此,在DemoViewController.xib和DemoViewController-iPad.xib里分别加入不同的显示,分别在iPhone、iPad下运行看是否正确,正确的运行应该是在iPad下程序能自动选择显示DemoViewController-iPad.xib。
以上是解决程序入口问题。
对于其他不是关联在MainWindow 上的XIB文件,程序不能自动选择(现还没有找到方法可以),比如OtherViewController.xib,用上面的技巧生成OtherViewController-iPad.xib并加入到项目中,然后在对应OtherViewController.m中:
- (void)viewDidLoad
{
[super viewDidLoad];
if(UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPad)
{
[[NSBundlemainBundle]loadNibNamed:@"OtherViewController-iPad"owner:selfoptions:nil];
}
else
{
[[NSBundlemainBundle]loadNibNamed:@" OtherViewController"owner:selfoptions:nil];
}
}
加入红色部分的code即可,那个loadNibNamed:根据具体的来改。
对于内部的其他代码,若iPhone与iPad版本有区别的话,继续用好上面的if 判断语句就可以了。
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
//iPad version code here
}
else
{
//iPhone/touch version code here
}
参考:http://www.devdiv.com/forum.php?mod=viewthread&tid=116427
http://blog.csdn.net/inkywang/article/details/7074752
/article/5883701.html
1、 是在创建新项目的时候,创建基于Window-based Application,窗口中间product项选择Universal(只有基于Window-based才有这个选项)。创建完成如下图:
不同之处在于:少了Resouces Folder,增加了iPad,iPhone,Shared Folder。对iPhone、iPad加以了区分,这种模式笔者认为对于底层数据接口文件、类等共用的可放在Shared Folder,但对于上层类,XIB相应的要创建单独的两份(且不能同名),一种基于iphone,一种基于iPad。两者无关系,所以也不用在代码里进行区分。
2、 是完全用代码实现的项目,通过在代码里识别程序运行的设备,之后你可以根据对应的设备,做响应的试图显示操作。如:
#if(__IPHONE_OS_VERSION_MAX_ALLOWED>= 30200)
if (UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPad) {
UILabel*lab = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 200, 100)];
lab.text= @" Runing as an iPad application ";
[self.viewaddSubview:lab];
[lab release];
}
else{
UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(50, 50, 100, 50)];
lab.text= @" Running as an iPhone/iPod touch application";
[self.viewaddSubview:lab];
[labrelease];
}
#endif
3、 是针对基于xib的iphone项目,建立两套xib文件,根据程序运行时的运行设备,选择对应的xib文件。
但在我做的Demo中,并不能智能地选择对应xib文件,还是须代码判断设备选择相应xib,稍后做详解。
第3种方法也可以实现将ipone项目转到ipad平台
无论是已有的iphone项目还是新创建的项目(作iphone项目创建)通过以下步骤转到iPad平台。
一、 创建aView-based Application (iPhone) project,命名Demo,然后把此iphone程序升级为Universal程序。点击菜单栏“Project”-〉“UpgradeCurrent Target for iPad…”-〉选择“OneUniversal application”,这样做 Universal 版本,主要是针对mainWindow.xib,会自动生成Resources-iPad文件夹,里面有一个 mainWindow-iPad.xib文件。
在.plist里,应该会有main nib file base name这个Key,对应MainWindow,就是iphone程序的入口;同时会有main nib file base name(iPad),对应MainWindow-iPad这项,如果没有,自己建立一个,universal版本会多出这项,选择即可。然后须自己建立一个xib文件,来作为iPad入口。对应于上面iphone的DemoViewController.xib文件,创建基于iPad名为DemoViewController-iPad的View XIB。 注意:把MainWindow-iPad.xib里的DemoViewController下面Attributes选项卡下NIB Name设置为”DemoViewController-iPad”。此处就设置好了iPad入口。
技巧:对于已有的iPhone版的XIB文件,也可以这样生成iPad XIB,如:打开这个DemoViewController.xib文件,然后点击File ->Create iPad version(usingautosizing masks),会自动生成一个iPad版的DemoViewController.xib,然后另存为名字的iPad的XIB文件,这里命名为DemoViewController-iPad.xib,然后拖到项目里就完成了。
在Build ->Targeted Device Family处,设置为”iPhone/iPad”;
到此,在DemoViewController.xib和DemoViewController-iPad.xib里分别加入不同的显示,分别在iPhone、iPad下运行看是否正确,正确的运行应该是在iPad下程序能自动选择显示DemoViewController-iPad.xib。
以上是解决程序入口问题。
对于其他不是关联在MainWindow 上的XIB文件,程序不能自动选择(现还没有找到方法可以),比如OtherViewController.xib,用上面的技巧生成OtherViewController-iPad.xib并加入到项目中,然后在对应OtherViewController.m中:
- (void)viewDidLoad
{
[super viewDidLoad];
if(UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPad)
{
[[NSBundlemainBundle]loadNibNamed:@"OtherViewController-iPad"owner:selfoptions:nil];
}
else
{
[[NSBundlemainBundle]loadNibNamed:@" OtherViewController"owner:selfoptions:nil];
}
}
加入红色部分的code即可,那个loadNibNamed:根据具体的来改。
对于内部的其他代码,若iPhone与iPad版本有区别的话,继续用好上面的if 判断语句就可以了。
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
//iPad version code here
}
else
{
//iPhone/touch version code here
}
参考:http://www.devdiv.com/forum.php?mod=viewthread&tid=116427
http://blog.csdn.net/inkywang/article/details/7074752
/article/5883701.html
相关文章推荐
- 将ipone项目转到ipad平台以及开发同时支持这两个平台的项目
- 开发同时支持iphone&ipad这两个平台的项目
- Xib文件如何将iPone项目转到iPad平台
- 使用QEMU模拟搭建ARM开发平台(三)——添加SCSI和MTD以及NAND flash支持
- 多平台移动项目开发工具Elements发布v9.1,支持Visual Studio 2017
- android,ios,apicloud 同时开发两个平台应用,方便简单一体化,自带svn,云编译,中文IDE
- 项目开发流程,以及什么是数据分析平台,再者为什么要做数据分析平台,数据来源,数据处理流程
- 关于开发iPad项目只支持横屏显示的设置
- 【x5平台二次开发项目】OA_对人员概念的关系添加关系(字段)以及对相应的mainWindow的修改
- Bitbucket 入门 - 如何在两个电脑里同时开发一个项目
- 托iPad的福,iPhoneOS平台开发项目数大涨1.85倍
- iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a以及 FrameWork 的创建
- Java开发环境的搭建以及使用eclipse从头一步步创建java项目
- Android Studio 如何打开两个项目,以及切换到另一个项目
- [C] 跨平台使用TCHAR——让Linux等平台也支持tchar.h,解决跨平台时的格式控制字符问题,多国语言的同时显示(兼容vc/gcc/bcb,支持Windows/Linux/Mac)
- 基于.net开发平台项目案例集锦(转)
- 软件项目开发流程以及人员职责
- android 开发过程中,两个包名相同的项目如何上传到同一个应用商城
- (转)微软借力.NET开源跨平台支持,布局物联网平台开发
- Sun发表支持Java的Web服务开发集成平台