xib相关(十七) —— UINib之Introduction(二)

版本记录

版本号 时间
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应用程序中扮演着重要角色。 图像负责创建每个操作系统使用的独特视觉风格; 它们还有助于简化复杂视觉元素的绘图代码。 声音和电影文件同样有助于增强应用程序的整体用户体验,同时简化创建该体验所需的代码。 这两种,操作系统都为在应用程序中加载和呈现这些类型的资源提供了广泛的支持。

相关章节:Image, Sound, and Video Resources

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.pngMyImage〜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相关:

后记

本篇主要讲述了UINib之Introduction,感兴趣的给个赞或者关注~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容