版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.05.01 |
前言
iOS中的视图加载可以有两种方式,一种是通过xib加载,另外一种就是通过纯代码加载。它们各有优点和好处,xib比较直观简单,代码比较灵活但是看着很多很乱,上一家公司主要风格就是用纯代码,这一家用的就是xib用的比较多。这几篇我们就详细的介绍一个xib相关知识。感兴趣的可以看上面写的几篇。
1. xib相关(一) —— 基本知识(一)
2. xib相关(二) —— 文件冲突问题(一)
3. xib相关(三) —— xib右侧标签介绍(一)
4. xib相关(四) —— 连线问题(一)
5. xib相关(五) —— 利用layout进行约束之界面(一)
6. xib相关(六) —— 利用layout进行约束之说明和注意事项(二)
7. xib相关(七) —— Storyboard中的segue (一)
8. xib相关(八) —— Size Classes(一)
9. xib相关(九) —— 几个IB修饰符(一)
10. xib相关(十) —— xib的国际化(一)
11. xib相关(十一) —— xib的高冷用法之修改视图的圆角半径、边框宽度和颜色(一)
12. xib相关(十二) —— UIStackView之基本介绍(一)
13. xib相关(十三) —— UIStackView之枚举UIStackViewDistribution使用(二)
14. xib相关(十四) —— UIStackView之UIStackViewAlignment使用(三)
15. xib相关(十五) —— UIStackView之工程实践(四)
16. xib相关(十六) —— UINib之基本介绍(一)
回顾
上一篇主要讲述了UINib的基本介绍,这一篇主要讲述UINib之Introduction。
About Resources - 关于资源
应用于计算机程序,资源是伴随程序可执行代码的数据文件。通过在代码之外创建复杂的数据集或图形内容并将其转换为更合适的工具,资源可以简化您必须编写的代码。例如,不是使用代码逐个像素地创建图像,而是在图像编辑器中创建它们更有效率(更实用)。要充分利用资源,您的代码必须在运行时加载并使用它。
除了简化代码之外,资源也是所有应用程序国际化进程中的一个关键部分。您可以将该内容放置在外部资源文件中,而不是在应用程序中对字符串和其他用户可见内容进行硬编码。本地化您的应用程序将成为为每种受支持的语言创建每个资源文件的新版本的简单过程。 OS X和iOS中使用的bundle机制提供了一种组织本地化资源的方法,并且便于加载与用户首选语言相匹配的资源文件。
本文档提供有关OS X和iOS中支持的资源类型的信息以及如何在代码中使用这些资源。 本文档不关注资源创建过程。 大多数资源是使用第三方应用程序或/ Developer / Applications目录中提供的开发人员工具创建的。 另外,虽然本文档涉及应用程序中资源的使用,但这些信息也适用于其他类型的bundle可执行文件,包括框架和插件。
在阅读本文档之前,您应该熟悉应用程序软件包的组织结构。 了解这种结构可以更轻松地组织和查找应用程序使用的资源文件。 有关bundle的结构信息,请参阅Bundle Programming Guide。
At a Glance - 概括
应用程序可以包含许多类型的资源,但有几个由iOS和OS X直接支持。
1. Nib Files Store the Objects of Your Application’s User Interface - Nib文件存储你的用户程序界面的对象
Nib文件是用于创建iOS和Mac应用程序的典型资源类型。 nib文件是一个数据存档,基本上包含一组您想在运行时重新创建的冻干对象。 nib文件通常用于存储预配置的window,view和其他面向视觉的对象,但它们也可以存储非可视对象,如控制器。
您可以使用Interface Builder编辑Xcode中的nib文件,Interface Builder提供了一个用于组装对象的图形编辑器。 当您随后将nib文件加载到应用程序中时,nib加载代码实例化文件中的每个对象并将其恢复到您在Interface Builder中指定的状态。 因此,您在Interface Builder中看到的实际上是您在运行时在应用程序中获得的内容。
相关章节:Nib Files
2. String Resources Containing Localizable Text - 包含本地文本的字符串资源
文本是大多数用户界面的重要组成部分,但也是受本地化更改影响最大的资源。 iOS和OS X不是将文本硬编码到代码中,而是支持在字符串文件中存储用户可见文本,这些文件是包含应用程序的一组字符串资源的可读文本文件(采用UTF-16编码)。 (由于这种类型的文件使用了.strings文件扩展名,因此使用复数“strings”是有意的。)字符串文件通过允许您编写一次代码然后正确加载,大大简化了国际化和本地化过程 来自资源文件的本地化文本,可以轻松更改。
Core Foundation和Foundation框架提供了从字符串文件加载文本的功能。 使用这些工具的应用程序还可以利用Xcode附带的工具在整个开发过程中生成和维护这些资源文件。
相关章节:String Resources
3. Images, Sounds, and Movies Represent Pre-rendered Content - 图像、声音和动画代表的预渲染内容
图像,声音和电影资源在iOS和Mac应用程序中扮演着重要角色。 图像负责创建每个操作系统使用的独特视觉风格; 它们还有助于简化复杂视觉元素的绘图代码。 声音和电影文件同样有助于增强应用程序的整体用户体验,同时简化创建该体验所需的代码。 这两种,操作系统都为在应用程序中加载和呈现这些类型的资源提供了广泛的支持。
4. Property Lists and Data Files Separate Data from Code - 属性列表和数据文件将数据和代码分隔
属性列表文件是一个结构化文件,用于存储字符串,数字,布尔值,date和原始数据值。 文件中的数据项是使用数组和字典结构进行组织的,大多数item与唯一键相关联。 系统使用属性列表来存储简单的数据集。 例如,几乎在每个应用程序中找到的Info.plist文件都是属性列表文件的示例。 您还可以使用属性列表文件来满足简单的数据存储需求。
除了属性列表之外,OS X还支持一些特殊结构的文件以用于特定用途。 例如,AppleScript数据和用户帮助使用特殊格式的数据文件进行存储。 您也可以创建自己的自定义数据文件。
相关章节:Data Resource Files
5. iOS Supports Device-Specific Resources - iOS支持指定的设备资源
在iOS 4.0和更高版本中,可以将单个资源文件标记为仅在特定类型的设备上可用。此功能简化了您必须为通用应用程序编写的代码。而不是创建单独的代码路径来为iPhone加载一个版本的资源文件,并为iPad加载不同版本的文件,您可以让包加载例程选择正确的文件。你所要做的就是适当地命名你的资源文件。
要将资源文件与特定设备相关联,请将自定义修饰符字符串添加到其文件名。包含此修饰符字符串将生成具有以下格式的文件名:
<basename><device>.<filename_extension>
<basename>字符串表示资源文件的原始名称。它也代表从代码访问文件时使用的名称。同样,<filename_extension>
字符串是用于标识文件类型的标准文件扩展名。 <device>字符串是一个区分大小写的字符串,可以是以下值之一:
- ipad - 资源只能在iPad设备上加载。
- iphone - 资源只能在iPhone或iPod touch上加载。
您可以将设备修饰符应用于任何类型的资源文件。 例如,假设您有一个名为MyImage.png
的图像。 要为iPad和iPhone指定不同版本的图像,您需要创建名称为MyImage〜ipad.png
和MyImage〜iphone.png
的资源文件,并将它们都包含在您的包中。 要加载图像,您将继续在代码中将资源称为MyImage.png
,并让系统选择适当的版本,如下所示:
UIImage* anImage = [UIImage imageNamed:@"MyImage.png"];
在iPhone或iPod touch设备上,系统加载MyImage〜iphone.png
资源文件,而在iPad上加载MyImage〜ipad.png
资源文件。 如果没有找到设备特定版本的资源,系统将回退到寻找具有原始文件名的资源,在前面的例子中,该文件名为MyImage.png
。
See Also - 可以参考
以下Apple Developer文档在概念上与Resource Programming Guide
相关:
- Bundle Programming Guide描述了应用程序用于存储可执行代码和资源的bundle结构。
- Internationalization and Localization Guide介绍了准备应用程序(及其资源)以翻译成其他语言的过程。
-
Xcode Overview
中的Build a User Interface
一章介绍了用于编辑nib文件资源的工具。 - Property List Programming Guide介绍了将属性列表资源文件加载到Cocoa应用程序中的功能。
- Property List Programming Topics for Core Foundation描述了将属性列表资源文件加载到基于C的应用程序中的功能。
后记
本篇主要讲述了UINib之Introduction,感兴趣的给个赞或者关注~~~