大钟的ios开发之旅(1)————简单谈谈ios程序界面实现的三种方式(代码创建,xib和storyboard)

本文介绍了iOS程序界面的三种实现方式:纯代码创建、xib以及storyboard。对比了它们的优缺点,强调了storyboard在现代iOS开发中的重要地位,以及xib在某些场景下的优势。对于代码创建,提到了其代码量大、构建麻烦的问题;而对于xib,文中详细阐述了xib的使用方法,包括初始化、绑定、xib助手的运用和delegate设置,同时也指出了xib文件过多可能带来的管理问题。
摘要由CSDN通过智能技术生成

/********************************************************************************************
 * author:conowen@大钟                                                                                                                          
 * E-mail:conowen@hotmail.com                                                                                                             
 * http://blog.csdn.net/conowen                                                                                                                 

 ********************************************************************************************/

一丶前言

       实现iOS界面总的来说,有三种方式,传统的是纯代码创建与xib创建,近年来,苹果官网一直推荐用storyboard管理项目界面,最新的xcode创建的project也是默认为storyboard方式了。相对于Android开发而已,界面的管理就两种方式,一种是纯代码,另外一种技术XML布局方式。其实ios与Android的界面管理相同点挺多的,下面就分开说说。


二、纯代码创建

 首先如下,纯代码创建一个UIImageView,并给它设置图片,并且根据设备的不同,动态设置其位置坐标与长宽。


[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. UIImageView *food=[[UIImageView alloc] init];  
  2. food.image=[UIImage imageNamed:_imgName];  
  3. if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {  
  4.     food.frame=CGRectMake((width*0.25+width/2-197*4/6),height+height/2197*4/3260*4/3);  
  5. }  
  6. else{  
  7.     food.frame=CGRectMake((width*0.25+width/2-90*4/6),height+height/290*4/3118*4/3);  
  8.   
  9. }  

优点:可以灵活地适应各种环境,无论是什么ios版本,或者iPhone,ipad,都可以动态地适应各种场景。

缺点:代码量大,构建控件麻烦,点击的监听函数和delegate要自己手动创建。


三、xib方式创建

       xib创建视图,就如同Android的XML一样,但是它比Android的XML方式还强大。可以直接设置控件的监听函数与delegate,控件的各种属性基本都能设置。


3.1、xib项目的初始化写法

     使用xib的项目,AppDelegate的didFinishLaunchingWithOptions方法中一般这么写。

[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2. {  
  3.       
  4.     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
  5.       
  6.     UINavigationController *navController;  
  7.     HomeViewController *homeViewControl;  
  8.     if (IS_IPAD) {  
  9.           
  10.         homeViewControl = [[HomeViewController alloc] initWithNibName:@"HomeViewController_iPad" bundle:nil];  
  11.           
  12.     }  
  13.     else{  
  14.         homeViewControl = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];  
  15.           
  16.     }  
  17.       
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值