IB( Interface Builder )

本文详细介绍了Interface Builder (IB)的原理,包括NIB和XIB文件的结构。讨论了使用Storyboard开发的程序启动过程和方法调用区别,强调了自动布局和约束在替换frame开发中的优势。文章分析了Storyboard开发的诸多优点,如项目结构清晰、代码量减少、后期维护方便等,并提供了解决冲突的策略。最后,对使用IB开发的可行性和扩展性进行了分析。
摘要由CSDN通过智能技术生成

1.IB是什么?

Interface Builder 是一种通过图形化界面搭建UI的方式,并把窗口、菜单栏以及窗口上的各种控件的对象都“冻结”在了一个 NIB文档里;程序运行时,这些对象将会“苏醒”。

在终端下我们可以看到,NIB 其实是一个目录。它里面有两个也是后缀为 NIB 的文件:designable.nib 和 keyedobjects.nib。前者是一个 XML 文档,而后者则是一个二进制文件。Interface Builder 3 之后,引入了新的文档格式:XIB。它是单一的 XML 文档,也就是一个纯文本文件。纯文本文件的好处是显而易见的。嗯,就是便于源代码版本管理。现在最新版本的 Xcode 在创建项目时,已经默认使用 XIB 格式的文档了。

不论在 Interface Builder 中选择的是 storyboard 还是 xib 格式,Xcode 编译后都将得到一个供程序运行时使用的经过编译的 NIB 文件。

2.storyboard开发该怎样做?

2.1.程序启动的过程

首先iOS应用程序默认的启动过程是:

①.先加载Main函数

②.在Main函数里的 UIApplicationMain方法中,创建Application对象 创建Application的Delegate对象

③.创建主循环,代理对象开始监听事件

④.启动完毕会调用 didFinishLaunching方法,并在这个方法中创建UIWindow

⑤.如果有storyboard,会根据info.plist中找到应用程序的入口storyboard并加载箭头所指的控制器

⑥.设置UIWindow的根控制器是谁,如果Storyboard和手码都设置了根控制器,手码设置的根控制器会把手码的给替换了。

⑦.显示窗口

如果是纯代码的项目将不会有第五步。会直接在didFinishLaunching方法中找到UIWindow设置的根控制器,通过创建时的类型来决定控制器的类型。如果项目中使用了interface Builder的图形化界面,那么在程序启动过程中会经历第五步,并且需要将storyboard中的控制器与自己建立的类相关联。

2.2.方法调用的区别

使用纯手码开发的方法调用顺序为:

控制器 + (void)loa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值