Luo*_*Duc 7 storyboard xib nib ios
我是iOS开发的新手.我已经阅读了一些我在网上找到的源代码,其中很多都没有包含一个nib文件.所有视图似乎都是从代码中手动绘制的.
拥有/没有nib文件有什么好处?他们为什么选择从代码创建所有内容,而不是像图形板或*.xib文件那样可视化的内容?
bry*_*mac 11
我喜欢代码的最大原因是它在源代码控制中差异很大.XIB非常难以区分,合并和读取.
代码也很容易复制/粘贴已保存的代码段.有了IB,我总会忘记一些复选框,让我想知道为什么魔法无效.我的笔记有代码片段.
IB真正擅长的是布局和帮助您使用人机界面指南(控件之间的像素数等...与guiedlines).
所以,我个人的偏好是IB中的布局和代码中的其他所有内容(包括目标,操作,添加列等等......).然而,在动态场景下,IB崩溃了,你最终得到了自定义视图.
这是一篇相关的帖子:
在团队环境中合并时的Interface Builder(XIB)或代码?
为什么你应该使用笔尖以及为什么不应该使用笔尖有很多原因.没有明确的答案,每个答案取决于您需要做什么.
除了Nibs提供的明显优势(快速的UI创建过程,最小化.m文件中的视图构造代码),它们提供了一些你无法找到的东西:解决本地化问题.在将您的应用程序本地化为其他语言时,您会偶然发现需要2-3个单词来解释的短语和事物,而在另一种语言中,他们只需要一个.当使用不同的本地化时,这会严重导致视图控制器内的错误视图错误.因此,您可以为Xcode 4中的每个笔尖设置2-3个子笔尖,并按照您喜欢的方式对每个笔尖进行本地化,并将按钮和视图放在正确的位置,而不必担心根据语言重新定位视图用户有.如果你要使用代码来完成所有这些操作,那么你应该放置'if'到处都是,这肯定是一个糟糕的编程习惯,并且容易出错.
我已经创建了一些视图控制器,如果我不使用界面构建器,则需要数百行才能设置视图.
但是,NIB永远不会以编程方式实现创建视图的性能,因为每个NIB都是用HTML/XML编写的视图描述符,并且在创建任何视图之前,必须从磁盘读取文件并进行分析.Nibs还缺少普通代码所具有的自定义选项(阴影,圆角和其他Quartz魔法).这些自定义选项不可用,因为有很多方法使用代码来达到同样的效果,无论是聊到更高级别的核心动画层,通过直接寻址QuartCore和CGGraphics,做重的东西有这肯定是更快,最值得推荐的案例(使用图层的阴影可能非常慢).因此,Apple不希望将开发限制为一种特定的绘制方式.
NIB存在是有原因的.您必须确保在应用程序中了解创建NIB的原因.Nib存在将代码连接到出口,促进本地化,加速开发和清理代码.在项目中你肯定必须使用Nib,但你必须避免使用它们,普通代码也会以最少或类似的努力给你相同的结果.
最后但并非最不重要的是,考虑内存管理.使用Nib将影响IBOutlets等已分配对象的重新分配.如果您确定要创建的IBOutlet将在您需要时取消分配,请不要使用NIB.请改用普通代码.
在代码中创建视图有很多原因.
我认为最重要的原因是缺乏性能和功能.
当我只想用简单的按钮和标签以及原型设计来显示简单的信息时,我正在使用nib文件.
有一些非常简单的nib,如典型的MainWindow.nib,它们没有本地化的内容,可以用一行代码重现.在这种情况下,代码比取消归档nib要快得多.
还存在高度动态的布局,这些布局不可能被描述为笔尖.
您应该在每种特定情况下选择最方便有效的方法.总会有权衡,只需明智地选择.
| 归档时间: |
|
| 查看次数: |
7930 次 |
| 最近记录: |