xib原理

iOS之xib和Storyboard加载原理 为了说明加载的过程,我们通过解析UIViewController实例化到呈现给我们能看到视图这中间的过程 UIViewController也可以没有xib和StoryBoard进行实例化,这里我们分析的是带有xib或StoryBoard的情况 不管xib还是Storyboard苹果都给给我们提供了上层api用于我们视图和控制器的实例化,分别对应的类是UINib和UIStoryboard。 我们使... 阅读详情

原文出处:http://blog.youkuaiyun.com/xn4545945


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


一、iOS中xib与storyboard显示原理

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

1. 代码

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

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

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

2. xib

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

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

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

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

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

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

形如:

  1. UIView *view = [[UIView alloc] init];  
  2.    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的设计模式。




storyboard的使用范例 storyboard的使用范例,关键掌握跳转,赋值,跳回; 立即下载

相关推荐

手把手教你修改miniwiggler配置信息,解决UDE连接问题(附FT_PROG工具下载)

本文详细介绍了如何使用FT_PROG工具修改miniwiggler配置信息,解决UDE连接问题。通过分析FT2232芯片的EEPROM结构,提供从驱动安装到配置烧写的完整流程,帮助开发者实现无缝连接英飞凌TriBoard开发板。文章还包含常见错误解决方案和高级批量配置技巧。

weixin_30919429的博客 373

Xcode下熟练storyboard、xib等界面开发(新手)

其中,有一个Main.storyboard这个是我们的第一个SB文件,我们所有视图的UI界面都在这里设置, 其中AppDelegate里面有程序的入口用于初始化,而AppDelegate是在不断循环的程序和我们的代码之间进行通讯,AppDelegate对象是作为Application对象的委托属性还声明了一个NSwindow*window 的XIB文件的IBOutlet输出变量 这就让AppDelegate可以直接对window做一些操作 比如说windows的背景颜色等。如:Testsb之类的...

m0_73232447的博客 6850

Mediapipe手势识别实战——基于关节角度计算实现动态手势分类

本文详细介绍了如何利用Mediapipe进行手势识别,通过计算手指关节弯曲角度实现动态手势分类。文章从基础原理出发,讲解了关节角度计算的数学方法,并提供了Python实现代码。同时,还分享了数字手势和OK手势的识别实战经验,以及性能优化和工程实践中的关键技巧,帮助开发者快速掌握实时手势识别技术。

weixin_26891599的博客 403

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

用文本标记语言来进行布局,用的最多的应该是HTML语言。HTML可以理解为有一组特殊标记的XML语言。 一、iOS中xib与storyboard显示原理 在iOS中主要的布置界面的方式有3种:代码,xib,storyboard。 1. 代码 代码布置界面是万能的,但通常很复杂。布置一个简单的界面可能需要很多行代码,因此十分繁琐。 下面为创建一个按钮的代码,最少也要3行: UIBut

xn4545945 1万+

VMware 虚拟机里连不上网的五种解决方案

在VMware虚拟机里的虚拟机系统连接不上网络 首先,注意查看适配器选项里的网络连接这两个网络连接是否存在,如果不存在可以重新装一下VM 如果存在,连不上网 解决办法一: 虚拟机设置里,找到“网络适配器”,右边的网络连接选择“NAT 模式”,如果不行的话再linux系统。还是不行的话接着看第二种解决方案。 解决方法二: 可能原因是VMware NET Service...

墨轩 18万+

Open3D 进阶(32)渐进三角网(PTD)地面滤波

渐进三角网地面滤波算法(Progressive TIN Densification, PTD)是一种广泛应用于机载LiDAR点云数据处理的滤波方法,旨在从复杂场景中精确分离地面点,以生成数字高程模型(DEM)。

点云侠的博客 1536

iOS Xib & Storyboard

iOS Xib &amp;amp;amp;amp; StoryboardInterfaceBuilderXib文件Xib解析方式示例Storyboardstoryboard分析storyboard的启动 在iOS开发中, 我们会经常接触到的 xib 文件, 还能听到它的另一个名字 nib, 其实它们俩差不多是指代同一个东西, 只不过 xib 是编译前, nib是编译后, 还有后来的 storyboard , 它们其实都x...

z_z_l123456789的博客 1723

注意力机制模块:注意力机制新宠:EMA 注意力(高效多尺度注意力),即插即用,涨点明显

无降维成为共识:越来越多的研究者意识到,传统注意力机制的通道降维操作会造成不可逆的信息损失。EMA 提出的“保留每个通道信息”理念正在成为新一代注意力模块的设计标准。分组并行走向成熟:特征分组 + 并行处理的设计范式已在多个前沿架构中得到验证,兼顾了表达能力和计算效率。多尺度与跨空间融合:单纯的多尺度或单纯的跨空间交互都已无法满足复杂任务需求,两者的深度融合是当前的主流方向。边缘部署导向:2026 年的新论文越来越关注在资源受限设备上的高效运行,轻量化设计成为评估注意力模块的重要指标。

ZXSXJ的博客 948

iOS中storyboard故事板使用Segue跳转界面、传值

在iOS的开发过程中,不可避免的要设计界面,在android中有xml设置界面和直接使用java代码设置界面控件两种方式,在之前的ios开发中也是类似的有xib文件设置界面及用代码直接设置控件两种方法,但后来又出了一种方式,就是storyboard故事板,其实storyboard和xib文件很像,最大的不同之处在于一个xib文件对应一个ViewController视图控制器,而storyboard对应多个,基本一个应用只需要一个storyboard就可以了,不再需要为每个控制器创建一个xib文件,从这点上来

Minecraft 9994

数据分析案例-对某宝用户评论做情感分析

目录 原始数据 绘制词云图 情感分析 原始数据 原始数据为某宝一商品的用户评论数据 绘制词云图 # coding=utf-8 import jieba import re import wordcloud import imageio # 打开需要分析词频的文本 with open('淘宝评论3.0.txt', encoding='utf-8') as f: data = f.read() # 文本预处理 :去除一些无用的字符只提取出中文出来 new_data

m0_64336780的博客 1万+

代谢组数据分析(二十二):代谢组原始数据Zscore标准化和主成分分析(PCA)及热图

本教程介绍了使用Z-score标准化和主成分分析(PCA)进行代谢组学数据预处理和分析的方法。代谢物原始数据具有高噪声、高维小样本、高变异性和复杂相互作用关系等特点,因此在数据分析时需注意数据质量控制、参数选择、批次效应、假阳性控制等问题。Z-score标准化通过将数据转换为均值为0、标准差为1的标准正态分布,提高了数据的可比性,减少了系统误差,并适应了统计分析方法的需求。PCA则通过降维、去相关和特征提取,帮助理解数据的结构和模式。教程还详细介绍了数据预处理步骤,包括填补缺失值、设置名称和顺序等,并提供了

专注生信领域 2857

Swift自适应布局(Adaptive Layout)教程

通用的Storyboard 通用的stroyboard文件是通向自适应布局光明大道的第一步。在一个storyboard文件中适配iPad和iPhone的布局在iOS8中已不再是梦想。我们不必再为不同尺寸的Apple移动设备创建不同的storyboard文件,不用再苦逼的同步若干个storyboard文件中的内容。这真是一件美好的事情。 我们打开Xcode,新建一个项目:   选择iOS...

不积跬步 无以至千里 不积小流 无以成江海 1060

把 ABAP 选择屏幕 Selection Screen 打造成可维护的交互面板:常用屏幕元素与动态控制全解析

本文详细介绍了ABAP报表中Selection Screen的设计技巧,包括空行(SKIP)、横线(ULINE)、注释(COMMENT)等基础元素的使用方法,以及如何通过MODIF ID实现动态界面调整。重点讲解了行内布局(BEGIN OF LINE)、按钮(PUSHBUTTON)和区块(BLOCK)等高级功能,帮助开发者将选择屏幕从"能用"提升到"好用、易扩展、可维护"的水平。文章还分享了项目实践中的命名规范和分组策略,特别适合需要优化ABAP报表用户体验的开发人员

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 331

xib加载原理

  首先查看Xib中的UIView对应的类,然后用对应的类创建对象(调用的是initWithCoder方法),然后查看其属性进行设置,比如frame,backgroundcolor等 - 然后UIView中可能有多个子控件,比如有UIImageView,UILabel,...- 那么就对每一个控件从上到下,依次根据控件所对应的类来创建(调用的是initWithCoder方法)与之相对应的对象,然...

weixin_30655219的博客 141

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

XCode中xib文件绑定原理

最开始的是时候始终没有弄明白xib文件中的绑定关系。经过一周的开发体验终于有一些理解与收获。 Xib文件就是MVC模式中的View这个层的界面显示布局的信息。即类似Asp.net的aspx文件或者java中的jsp文件。完全就是一个界面展示控制的文件,存储方式是xml文件格式,可以手动编辑与修改。但我还没有细致的研究xml文件内容本身。 所有的关联与绑定的信息都存储在xib文件中,头文

greatwang123的专栏 1408

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

说说Xcode4中xib绑定的原理

http://www.th7.cn/Program/IOS/2011/09/09/41586.shtml 最开始的是时候始终没有弄明白xib文件中的绑定关系。经过一周的开发体验终于有一些理解与收获。 Xib文件就是MVC模式中的View这个层的界面显示布局的信息。即类似Asp.net的aspx文件或者java中的jsp文件。完全就是一个界面展示控制的文件,存储方式是xml文件格

u011248345的专栏 505

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Xcode4中xib绑定的原理

转自:http://www.cnblogs.com/liubiqu/archive/2011/09/08/2171969.html 最开始的是时候始终没有弄明白xib文件中的绑定关系。经过一周的开发体验终于有一些理解与收获。 Xib文件就是MVC模式中的View这个层的

henry_sea的专栏 4234

【iPhone开发】说说Xcode4中xib绑定的原理

最开始的是时候始终没有弄明白xib文件中的绑定关系。经过一周的开发体验终于有一些理解与收获。 Xib文件就是MVC模式中的View这个层的界面显示布局的信息。即类似Asp.net的aspx文件或者java中的jsp文件。完全就是一个界面展示控制的文件,存储方式是xml文件格式,可以手动编辑与修改。但我还没有细致的研究xml文件内容本身。 所有的关联与绑定的信息都存储在xib文件中,头文件与实现...

weixin_34262482的博客 204

iOS开发:xib九宫格图片适配原理与实践

九宫格技术(9-patch)是移动端UI适配的核心方案,通过定义图片的可伸缩区域,实现在不同尺寸下的完美显示。其原理是将图片划分为9个区域,仅中间部分参与拉伸,保持边角不变形。在iOS开发中,xib可视化工具原生支持九宫格设置,结合Auto Layout能显著提升电商标签、气泡对话框等动态UI的开发效率。本文以商品促销标签为例,详解素材规范、xib参数配置及性能优化技巧,特别针对边缘锯齿、内存暴增等常见问题提供解决方案。掌握Sketch切图规范和Core Graphics动态渲染等进阶技能,可进一步提升UI

weixin_33391446的博客 239

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

用文本标记语言来进行布局,用的最多的应该是HTML语言。HTML可以理解为有一组特殊标记的XML语言。 一、iOS中xib与storyboard显示原理 在iOS中主要的布置界面的方式有3种:代码,xib,storyboard。 1. 代码 代码布置界面是万能的,但通常很复杂。布置一个简单的界面可能需要很多行代码,因此十分繁琐。 下面为创建一个按钮的代

JAVA成长之路 820

通过Xib加载控制器原理

init底层会调用initWithNibName - 加载XMGViewController: - 会判断一下initWithNibName传入的参数有没有值,如果没有值,就会做以下几步 - 1.寻找有没有XMGViewController.xib,有,句直接帮你加载 - 2.寻找有没有XMGView.xib,如果有,就直接加载 - 3.创建一个空...

weixin_30485799的博客 128

xib文件加载控制器View的一些原理

通过加载xib文件来描述控制器的View的总结: loadView方法: -(void)loadView { //只要没有重写loadView,系统就会自动判断有没有storyboard或者xib描述控制器的View,如果有就会去加载它们描述控制器的view;只要写了该方法,系统就不会去检测storyboard、xib文件 } 如果你指定了具体的xib文件,则系统会优先加载该xib文件:

月亮之上 363
上一篇: GCD使用01
下一篇: SQLite使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值