xcode的images.xcassets

本文介绍如何在Xcode5中使用Images.xcassets管理应用程序的图标和启动图片,包括拖拽添加不同分辨率的图片、配置属性及注意事项。

如下所示:

本文分享一下Images.xcassets的体验~_~

1. 打开此前使用过的HelloWorld项目,然后单击并打开导航区域中的Images.xcassets,看看都有些什么东东:]:

 

2. 在图中可以看到中间位置有两个虚线框,感觉应该可以直接拖文件进来。OK,那就先准备一下资源文件,如下图所示:


说明:为方便起见,除Icon7.png之外,其他图标的文件名均沿袭了以往iOS图标的命名规则。

3. 将Icon-Small@2x.png拖拽到第一个虚线框中,将Icon7.png拖拽到第二个虚线框中,如下图所示:


 

说明Icon-Small@2x.png的尺寸是58*58像素的,而Icon7.png的尺寸是120*120像素的。另外,如果拖入的图片尺寸不正确,Xcode会提示警告信息。

4. 上图中单击实用工具区域的最右侧Show the Attributes inspector(显示属性检查器)图标,能够看到图像集的属性,勾选一下iOS 6.1 and Prior Sizes看看会发生什么变化?


 

5. 分别将Icon-Small.pngIcon.pngIcon@2x.png顺序拖拽到三个空白的虚线框中,完成之后的效果如下图所示:


 

6. 右击左侧的AppIcon,在弹出的辅助菜单中选择Show in Finder,看看刚才拖拽都做了哪些工作:



 

7. 图中除了Contents.json这个文件陌生之外,其他文件都是刚刚拖拽进Xcode的,双击查看一下Contents.json文件内容:

[html]  view plain copy
  1. {  
  2.  "images" : [  
  3.     {  
  4.      "size" : "29x29",  
  5.      "idiom" : "iphone",  
  6.      "filename" : "Icon-Small.png",  
  7.      "scale" : "1x"  
  8.    },  
  9.     {  
  10.      "size" : "29x29",  
  11.      "idiom" : "iphone",  
  12.      "filename" : "Icon-Small@2x.png",  
  13.      "scale" : "2x"  
  14.    },  
  15.     {  
  16.      "size" : "57x57",  
  17.      "idiom" : "iphone",  
  18.      "filename" : "Icon.png",  
  19.      "scale" : "1x"  
  20.    },  
  21.     {  
  22.      "size" : "57x57",  
  23.      "idiom" : "iphone",  
  24.      "filename" : "Icon@2x.png",  
  25.      "scale" : "2x"  
  26.    },  
  27.     {  
  28.      "size" : "60x60",  
  29.      "idiom" : "iphone",  
  30.      "filename" : "Icon7.png",  
  31.      "scale" : "2x"  
  32.     }  
  33.   ],  
  34.  "info" : {  
  35.    "version" : 1,  
  36.    "author" : "xcode"  
  37.   }  
  38. }  

内容一目了然啊,哈哈,以后再也不用去特意记住每个尺寸的图标分别应该叫什么名字了,不知道您会不会,反正我每次都是粘贴复制的,呵呵。以后,只要通过拖拖拽拽就搞定了~_~

8. 图标搞定了,启动图片照做就OK了,具体操作差别不大,完成之后的示意图如下:


 

9. 再看一下Finder中的内容,如下所示:


 

10. 在Finder中不难发现多出了两个文件,分别是:Default@2x-1.pngDefault-568h@2x-1.png,双击打开对应的Contents.json文件,内容如下:

[html]  view plain copy
  1. {  
  2.  "images" : [  
  3.     {  
  4.      "orientation" : "portrait",  
  5.      "idiom" : "iphone",  
  6.      "extent" : "full-screen",  
  7.      "minimum-system-version" : "7.0",  
  8.      "filename" : "Default@2x.png",  
  9.      "scale" : "2x"  
  10.    },  
  11.     {  
  12.      "extent" : "full-screen",  
  13.      "idiom" : "iphone",  
  14.      "subtype" : "retina4",  
  15.      "filename" : "Default-568h@2x.png",  
  16.      "minimum-system-version" : "7.0",  
  17.      "orientation" : "portrait",  
  18.      "scale" : "2x"  
  19.    },  
  20.     {  
  21.      "orientation" : "portrait",  
  22.       "idiom" : "iphone",  
  23.      "extent" : "full-screen",  
  24.      "filename" : "Default.png",  
  25.      "scale" : "1x"  
  26.    },  
  27.     {  
  28.      "orientation" : "portrait",  
  29.      "idiom" : "iphone",  
  30.      "extent" : "full-screen",  
  31.      "filename" : "Default@2x-1.png",  
  32.       "scale" : "2x"  
  33.    },  
  34.     {  
  35.      "orientation" : "portrait",  
  36.      "idiom" : "iphone",  
  37.      "extent" : "full-screen",  
  38.      "filename" : "Default-568h@2x-1.png",  
  39.      "subtype" : "retina4",  
  40.      "scale" : "2x"  
  41.     }  
  42.   ],  
  43.  "info" : {  
  44.    "version" : 1,  
  45.    "author" : "xcode"  
  46.   }  
  47. }  

11. 将其中的"filename": "Default@2x-1.png""filename" : "Default-568h@2x-1.png"分别改为"filename": "Default@2x.png""filename" : "Default-568h@2x.png",保存并返回Xcode看看会发生什么?


修改后的Contents.json内容如下:

[html]  view plain copy
  1. {  
  2.  "images" : [  
  3.     {  
  4.      "orientation" : "portrait",  
  5.      "idiom" : "iphone",  
  6.      "extent" : "full-screen",  
  7.      "minimum-system-version" : "7.0",  
  8.      "filename" : "Default@2x.png",  
  9.      "scale" : "2x"  
  10.    },  
  11.     {  
  12.      "extent" : "full-screen",  
  13.      "idiom" : "iphone",  
  14.      "subtype" : "retina4",  
  15.      "filename" : "Default-568h@2x.png",  
  16.      "minimum-system-version" : "7.0",  
  17.      "orientation" : "portrait",  
  18.      "scale" : "2x"  
  19.    },  
  20.     {  
  21.      "orientation" : "portrait",  
  22.       "idiom" : "iphone",  
  23.      "extent" : "full-screen",  
  24.      "filename" : "Default.png",  
  25.      "scale" : "1x"  
  26.    },  
  27.     {  
  28.      "orientation" : "portrait",  
  29.      "idiom" : "iphone",  
  30.      "extent" : "full-screen",  
  31.      "filename" : "Default@2x.png",  
  32.       "scale" : "2x"  
  33.    },  
  34.     {  
  35.      "orientation" : "portrait",  
  36.      "idiom" : "iphone",  
  37.      "extent" : "full-screen",  
  38.      "filename" : "Default-568h@2x.png",  
  39.      "subtype" : "retina4",  
  40.      "scale" : "2x"  
  41.     }  
  42.   ],  
  43.  "info" : {  
  44.    "version" : 1,  
  45.    "author" : "xcode"  
  46.   }  
  47. }  

12. 分别选中下方的"Default@2x-1.png"和"Default-568h@2x-1.png",按删除键删除这两个文件,删除之后的效果如下图所示:


删除之后Finder中的内容如下所示:

13. 接下来我们新建一个图像试试看如何操作,开始之前我们仍然需要准备一下素材,如下图所示:


说明:为了方便在运行时看出不同分辨率的设备使用的背景图片不同,我在素材图片中增加了文字标示。

14. 将准备好的三个Background直接拖拽到Xcode中,完成之后如下图所示:


 

15. 单击右侧Devices中的Universal,并选择Device Specific,然后在下方勾选iPhoneRetina 4-inch,同时取消勾选iPad,完成之后如下图所示:

 

16. 将下方Unassigned中的图片直接拖拽到右上角R4位置,设置视网膜屏使用的背景图片,如下图所示:

 

17. 单击并打开Main.storyboard,选中左侧的View Controller,然后在右侧File Inspector中,取消勾选Use Autolayout选项,如下图所示:

 

18. 从右侧工具栏中拖拽一个UIImageViewView Controller主视图中,处于其他控件的最底层。同时调整该UIImageView的尺寸属性,如下图所示:

 

19. 设置该UIImageView使用的图像,如下图所示:

 

20. 在不同屏幕的模拟器上运行HelloWorld应用,可以看到如下三张图示。




 

OK!Images.xcassets的初体验一文至此算是告一段落,现做一下简单的小节:

1. 有过Xcode以前版本使用经验的朋友应该会发现,从Xcode 5开始已经无需再去记住Icon.png和Default.png针对不同分辨率使用的文件名了;

2. Xcode 5针对4存视网膜屏的图像提供了单独的支持,解决了以往在兼容四存屏时,有时不得不需要编写专门的代码加载不同的图片;

3. Image.xcassets更加便于管理和维护;

4. 注意:启动图片的PNG图片不要使用透明图片,有兴趣的朋友不妨可以试试看,很丑的,呵呵。

 

著作权声明:本文由http://blog.youkuaiyun.com/liufan321或者http://www.cnblogs.com/liufan9原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

Assets.xcassetsXcode 中用于管理 iOS 应用程序资源(如图片、颜色、数据等)的重要工具。通过 Assets.xcassets,开发者可以更高效地组织和使用项目资源,确保应用在不同设备和系统版本上的兼容性。 ### 使用方法 Assets.xcassets 文件通常位于 Xcode 项目中,可以通过以下步骤进行操作: 1. **打开 Assets.xcassets**:在 Xcode 的项目导航器中找到 `Assets.xcassets` 文件并打开。 2. **添加资源**: - 点击左下角的 `+` 按钮,选择 `New Image Set` 或其他资源类型(如 `New Color Set`、`New Data Set` 等)。 - 为新资源命名,并在右侧的属性面板中上传不同分辨率的图片(如 @1x、@2x、@3x)或设置颜色值。 3. **引用资源**: - 在代码中引用资源时,可以直接使用资源名称,例如在 SwiftUI 中加载图片:`Image("imageName")`。[^3] ### 配置技巧 - **颜色配置**: - 在 Assets.xcassets 中可以定义应用的强调色(Accent Color),这将影响到 SwiftUI 中的系统组件颜色。 - 打开 `Assets.xcassets` 文件,找到 `AccentColor` 部分,修改 Light 和 Dark 下的颜色值即可。[^2] - **应用图标和启动画面**: - 应用图标和启动画面也是通过 Assets.xcassets 进行管理的。 - 找到 `App Icons` 和 `Launch Images` 部分,按照要求添加相应的图标和启动画面图片。 ### 常见问题 - **资源未正确加载**: - 如果资源未正确加载,请确保资源名称拼写正确,并且在 `Assets.xcassets` 中已经正确配置。 - 检查项目的 `Build Phases` -> `Copy Bundle Resources` 中是否包含了 `Assets.xcassets`。[^4] - **Xcode 无法识别 Assets.xcassets**: - 如果遇到 Xcode 无法识别 `Assets.xcassets` 或资源加载失败的问题,可以尝试清理项目并重新构建。 - 使用快捷键 `Shift + Command + K` 清理项目,然后重新编译运行。[^5] - **多分辨率支持**: - 为了支持不同分辨率的设备,需要为每个图像提供多个分辨率版本(如 @1x、@2x、@3x)。 - 在 `Assets.xcassets` 中,每个图像集都支持这些不同分辨率的图片,确保应用在各种设备上都能显示清晰的图像。[^4] ### 示例代码 以下是一个简单的 SwiftUI 示例,展示如何从 `Assets.xcassets` 加载图片: ```swift import SwiftUI struct ContentView: View { var body: some View { Image("exampleImage") .resizable() .aspectRatio(contentMode: .fit) .frame(width: 200, height: 200) } } ``` ### 相关问题 1. 如何在 Xcode 中创建新的颜色集? 2. 如何为不同分辨率的设备提供图片资源? 3. 为什么在代码中引用的资源无法加载? 4. 如何在 Flutter 项目中管理资源? 5. 如何解决 Xcode 无法识别 Assets.xcassets 的问题?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值