/********************************************************************************************
* author:conowen@大钟
* E-mail:conowen@hotmail.com
* http://blog.csdn.net/conowen
********************************************************************************************/
一丶前言
实现iOS界面总的来说,有三种方式,传统的是纯代码创建与xib创建,近年来,苹果官网一直推荐用storyboard管理项目界面,最新的xcode创建的project也是默认为storyboard方式了。相对于Android开发而已,界面的管理就两种方式,一种是纯代码,另外一种技术XML布局方式。其实ios与Android的界面管理相同点挺多的,下面就分开说说。
二、纯代码创建
首先如下,纯代码创建一个UIImageView,并给它设置图片,并且根据设备的不同,动态设置其位置坐标与长宽。
- UIImageView *food=[[UIImageView alloc] init];
- food.image=[UIImage imageNamed:_imgName];
- if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
- food.frame=CGRectMake((width*0.25+width/2-197*4/6),height+height/2, 197*4/3, 260*4/3);
- }
- else{
- food.frame=CGRectMake((width*0.25+width/2-90*4/6),height+height/2, 90*4/3, 118*4/3);
- }
优点:可以灵活地适应各种环境,无论是什么ios版本,或者iPhone,ipad,都可以动态地适应各种场景。
缺点:代码量大,构建控件麻烦,点击的监听函数和delegate要自己手动创建。
三、xib方式创建
xib创建视图,就如同Android的XML一样,但是它比Android的XML方式还强大。可以直接设置控件的监听函数与delegate,控件的各种属性基本都能设置。
3.1、xib项目的初始化写法
使用xib的项目,AppDelegate的didFinishLaunchingWithOptions方法中一般这么写。
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- {
- self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- UINavigationController *navController;
- HomeViewController *homeViewControl;
- if (IS_IPAD) {
- homeViewControl = [[HomeViewController alloc] initWithNibName:@"HomeViewController_iPad" bundle:nil];
- }
- else{
- homeViewControl = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
- }