nib、xib与故事板

如果大家使用过苹果的官方资料,一定会发现某些资料上会提到nib文件,那么nib与xib是怎样的一种关系呢?

最初只有nib文件,后来将其更名为xib,但大家一直沿袭nib这个叫法(即称xib文件为nib文件),所以目前为止,nib等同于xib。xib文件采用xml格式。

前文已提到故事板是用来替代xib的,那么两者除后缀名外,还存在哪些差异呢?

首先,在数量上,使用故事板技术时,一个工程只有一个故事板文件。当使用xib技术时,xib在数量上与视图控制器相对应,而一个工程可能会有很多视图控制器,相应地就会有很多xib文件。

其次,故事板与视图的关系可以在IB设计器中很明显地体现,而xib与视图的关系则需要查看相关代码或利用其他资源。下面我们来举例说明。

我们要做这样一个应用:两个不同的画面,有两个标签分别与其对应,点击标签两个画面实现互相切换,该应用采用标签栏导航模式,设计原型草图见图

选择Tabbed Application模板,分别采用xib和故事板文件实现

可以看到采用xib技术的时候两个画面有两个xib文件,而采用故事板时候两个画面只有一个MainStoryboard.storyboard文件

打开MainStoryboard.storyboard文件。

应用包含两个视图,两个视图存在切换关系,这些信息从上图中一目了然。事实上故事板是多个xib文件集合的描述文件,也采用xml格式。

需要特别提出的是,虽然苹果官方主张使用故事板,但最正确的做法是我们要根据具体情况、具体问题对故事板和xib做以取舍,而不是一概而论。当应用 数据量很大、画面很多、关系很复杂的时候,如果使用storyboad技术,那我们在IB设计器中的工作就会变得庞大而复杂,除此之外整个工程的性能也会 受到一定影响。

转载于:https://www.cnblogs.com/iOS-Blog/archive/2013/01/25/2876985.html

nib、xib与故事板的关系相关推荐

  1. 《Swift iOS应用开发实战》——2.2 了解故事板

    本节书摘来自华章计算机<Swift iOS应用开发实战>一书中的第2章,第2.2节,作者:刘铭 著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.2 了 ...

  2. 在故事板中加载 nib 时 IBOutlet 为 nil

    故事板是在 iOS 5 开始出现的,在此之前我们使用的是 nib/xib.一个故事板支持多个 ViewController,同时可以在这些 ViewController 中进行连接(segue).但是 ...

  3. 关于性能优化–选择nib还是故事板的讨论

    故事板是苹果在iOS5之后推出的技术,本意是集成多个nib文件于一个故事板文件,管理起来方便,故事板还能反应控制器之间的导航关系,很多导航是需要连连线就可以了,不需写代码,使用起来很方便.但是我告诫读 ...

  4. 《iOS 9 开发指南》——第6章,第6.4节 Interface Builder中的故事板——Storyboarding...

    本节书摘来自异步社区<iOS 9 开发指南>一书中的第6章,第6.4节 Interface Builder中的故事板--Storyboarding,作者 管蕾,更多章节内容可以访问云栖社区 ...

  5. 什么是故事板?(故事图、Storyboard)(软件显示效果的视觉草图,用于视频创作和广告设计,表达作者的创意)

    故事板是软件显示效果的视觉草图,用于视频创作和广告设计,表达作者的创意.20世纪90年代以来,电脑绘制软件渐渐取代了过去的手绘故事板,许多大制作的商业影片,都在拍摄之前用电脑动画模拟的方式创建故事板, ...

  6. iOS开发那些事--创建基于故事板的iOS 6的HelloWorld

    基于故事板的HelloWorld工程 Storyboard(故事板)是用来替代xib的技术,也是iOS 5最重要的新特性之一.我们用Storyboard(故事板)重构HelloWorld. 使用故事板 ...

  7. [Xcode 实际操作]九、实用进阶-(23)多个Storyboard故事板中的页面跳转

    目录:[Swift]Xcode实际操作 本文将演示多个Storyboard故事板中的页面跳转. 使用快捷键[Command]+[N]创建一个新的故事板文件. (在项目文件夹[DemoApp]上点击鼠标 ...

  8. ios标签控制器怎么用_带故事板的iOS标签栏控制器

    ios标签控制器怎么用 In this tutorial we'll look into another type of view controller namely Tab Bar Controll ...

  9. Silverlight Blend动画设计系列五:故事板(StoryBoards)和动画(Animations)

    原文:Silverlight & Blend动画设计系列五:故事板(StoryBoards)和动画(Animations) 正如你所看到的,Blend是一个非常强大的节约时间的设计工具,在Bl ...

  10. 【WPF学习】第五十章 故事板

    正如上一章介绍,WPF动画通过一组动画类(Animation类)表示.使用少数几个熟悉设置相关信息,如开始值.结束值以及持续时间.这显然使得它们非常适合于XAML.不是很清晰的时:如何为特定的事件和属 ...

最新文章

  1. session文件无法并发操作
  2. app式成语_聊斋成语
  3. Linux下守护进程(daemon)的实现
  4. webstorm前端常用快捷键
  5. MongoDB 数据类型查询——$type使用
  6. Linux 文件的压缩与解压
  7. Spring Aop——给Advice传递参数
  8. ktor框架用到了netty吗_Netty系列相关面试题汇总
  9. java高端架构_Java高端架构师
  10. 天猫、京东双11销售总额超8894亿!媒体:双11成交额崇拜可休矣
  11. Quick Startup(电脑开机启动项管理软件)官方中文版V5.20.1.168 | 如何管理电脑开机启动项
  12. Unity3D资源加载Resources
  13. 单元格下拉全选快捷键_excel下拉全选快捷键是什么
  14. android 如何播放音频,android如何播放和录制音频
  15. 计算机组成原理4位快速加法器
  16. mysql indentify_Database 中 identify relationship 和 non-identify relationship的区别
  17. 禁用zookeeper admin页面
  18. latex 参考文献显示问号_如何自学latex软件
  19. COLA 2.0架构应用
  20. Java log4j详细教程

热门文章

  1. symbian VC环境配置及其helloword详解
  2. Zabbix Windos agent 安装
  3. 新人开车——访问控制
  4. bootstrap-自定义导航栏隐藏参数@screen-sm
  5. 【安卓8】文件的读写
  6. For循环案例---九九乘法表
  7. 【vue】---动态路由传值
  8. 20190823 尚硅谷MySQL核心技术
  9. Android 集成Unity项目
  10. 【Vjudge】P558E A Simple Task(线段树暴力)