iOS中xib与storyboard原理,与Android界面布局的异同

用文本标记语言来进行布局,用的最多的应该是HTML语言。HTML可以理解为有一组特殊标记的XML语言。

一、iOS中xib与storyboard显示原理

在iOS中主要的布置界面的方式有3种:代码,xib,storyboard。

1. 代码

代码布置界面是万能的,但通常很复杂。布置一个简单的界面可能需要很多行代码,因此十分繁琐。

下面为创建一个按钮的代码,最少也要3行:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd];
    btn.center = CGPointMake(100, 100);
    [self.view addSubview:btn];

2. xib

xib适合布置小块界面,也可以用来做单个界面。属于拖控件型,只需要写加载xib的代码。

下图为用文本编辑器打开xib文件的结果:

可以看到,xib本质也是xml文件。

<document>标签内就是xib要显示的内容。

可以看到<view>标签内就要显示的内容。该xib只显示了一个带颜色的空白view。

xib的原理就是将xml文件解析出来,找到相应的view,转换成代码,然后创建对象并显示。

形如:

 UIView *view = [[UIView alloc] init];
    view.frame = CGRectMake(0.0, 0.0, 320, 480);

3.storyboard

storyboard适合做大界面的跳转等,而且丰富的viewController使得做减免变得非常简单。

同样,将storyboard用文本编辑器打开,可看到如下:

本质上还是xml文件。

<objects>标签下就是要创建的界面。这里用到了tabBarController作为根视图控制器。

tabBarController下指向4个其他视图控制器。

storyboard的原理也是将xml文件解析出来,找到相应的控制器等,转换成代码,然后创建对象并显示。和xib原理一样

二、Android与iOS布局显示的比较

众所周知,Android中布局基本完全是用xml完成,即使有一个所谓的可以拖控件的地方,也只能用粗制滥造来形如。

而iOS封装的可谓相当出色,要是不用文本编辑器打开,很多人可能不知道这是用xml文件的方式来显示布局的。

关于基本原理:Android与iOS基本布局显示原理是一样的,都将视图与模型数据分离,都遵循MVC的设计模式。

转载请注明出处:http://blog.csdn.net/xn4545945

iOS中xib与storyboard原理,与Android界面布局的异同,布布扣,bubuko.com

时间: 2024-08-02 02:48:08

iOS中xib与storyboard原理,与Android界面布局的异同的相关文章

iOS中xib与storyboard各种加载

xib 加载自定义View UIView *view = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil][0]; xib 加载自定义控制器 UIViewController *vc = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; storyboard 加载自定义控制器 UISto

iOS中的应用启动原理

iOS中的应用启动原理 来源: http://m.warting.com/program/201601/127355.html 一.UIApplication  1. 简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示. (3)通过[UIApplicationsharedApplicat

解决Android界面布局添加EditText组件后界面无法预览

错误报告: Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V Exception details are logged in Window > Show View > Error Log 问题分析: 进入xml源文件里发现一个警告,提示添加inputType或者hint元素,添加后界面仍然无法预览... 仔细查看了当前使用的API等级 API 20:Android 4.4w,这是Android官网发布

android界面布局

(一)LinearLayout界面编排模式 他的格式是按照线性顺序,由上往下或右左往右,逐一排列界面组件. layout_width:中的“match_parent”表示要填满他所在的外框,而“wrap_content”表示它的大小只要满足内部所包含的界面组件即可. android:orientation:“horizontal”表示排列方式为水平,而“vertical”表示排列方式为垂直 LinearLayout标签可以想象成一个外框,我们可以在其里面加入另外一个LinearLayout标签

iOS开发中xib和Storyboard中需要注意的事项

使用xib注意事项: 1.只有自带view的控件才可以使用xib,因为它本身就是一个view 2.在使用可视化控件添加属性(代码)时候,如果删除了属性代码,一定要在xib上解除关联(不然会崩溃) 3.在使用xib自定义cell的时候,必须在代码中注册cell 使用storyboard注意事项: 1.storyboard和xib的使用,都是偏向于界面的设置,很多数据操作功能都还是需要代码. 2. stroyboard在定义cell的时候,不需要注册,但是必须在可视化界面上添写identifier(

iOS中 xib自定义View在storyboard中的使用

1,创建UIView 的SubClass 命名为MyView 2, new一个名为MyView的xib p1 3,配置xib的属性 p2 4,为View 添加背景色,添加一个按钮并定制按钮约束,这里我添加的约束为垂直居中,Button与View等宽,Button左边起点位置为0. p3 5,设置xib中的File’s owner = MyView, 拖拽view 到关联的代码中命名为contentView p4 6, 在storyboard 中对ViewController 添加一个View,之

iOS 在xib或者storyboard中添加AutoLayout后,在代码中修改AutoLayout约束条件

如果是viewControl则AutoLayout适配写在- (void)updateViewConstraints方法中修改约束: 如果是view则AutoLayout适配 则在- (void)updateConstraints方法中修改. 可以直接把视图的约束像拖控件一样拖成属性直接在下面的方法里更改即可 //遍历self.myView控件中的约束,找到NSLayoutAttributeHeight控件高度这个约束关系,然后修改 -(void)updateViewConstraints {

iOS 中runtime的运用原理

什么是runtime呢? runtime是一套比较底层的纯c语言API,我们平时编写的OC语言代码,在程序运行过程时,都会被转化成runtime的c语言代码,runtime是oc语言的幕后工作者. 举例: OC中的代码: [[ZYPerson alloc]init]; 在runtime中会转成这样: objc_msgSend(objc_msgSend("ZYPerson","alloc"),"init"); 什么时候会使用runtime呢? ru

iOS中Xcode使用UIScrollView+AutoLayout轻松实现滚动布局

对于一些屏幕尺寸比较小的手机,或者内容很长,一屏幕显示不了的情况,我们通常可以用手指往上滑的方法浏览底部内容,如果不是用ListView或者UITableView去实现的话,我们就需要自己实现滚动布局. Android实现 在Android平台上,用XML文件很容易实现滚动布局,需要注意的是,ScrollView的下面只允许一个根视图,譬如如下代码: <ScrollView android:layout_width="match_parent" android:layout_he