Xcode 中放置图片的位置,Images.xcassets 和直接放在源文件目录中的区别
1.Images.xcassets中的素材
(1)只支持png格式的图片
(2) 图片只支持[UIImage imageNamed]的方式实例化,但是不能从Bundle中加载。[使用[NSBundle MainBundle] pathForResources 拿不到 images.xcassets里面图片的路径]
(3) 在编译时,Images.xcassets中的所有文件会被打包为Assets.car的文件
2.Bundle(包)中的图片素材
往项目中拖拽素材时,通常选择(1) Destination: 勾选
(2) Folders:
1)选择第一项:黄色文件夹
注意点:Xcode中分文件夹,Bundle中所有所在都在同一个文件夹下,因此,不能出现文件重名的情况
特点:
a.可以直接使用[NSBundle mainBundle]作为资源路径,效率高!
b.可以使用[UIImage imageNamed:]加载图像
2)选择第二项:蓝色文件夹
注意点:Xcode中分文件夹,Bundle中同样分文件夹,因此,可以出现文件重名的情况
特点:
a.需要在[NSBundle mainBundle]的基础上拼接实际的路径,效率较差
b.不能使用[UIImage imageNamed:]加载图
两者的区别:
1.如果图片是被放到images.xcassets中(部署版本>=ios8),之后打包的资源包中的图片会被放到Assets.car中,图片有被压缩. 如果部署版本<ios8 ,打包的资源包中的图片会被放在MainBundle中,图片不会被压缩。2.如果图片不被放到images.xcassets中,即直接拖拽到项目当中,无论部署版本是多少,都会被放到MainBundle中。这样图片没有被压缩。