iphone关于单倍图和二倍图(导航 背景 变高)
来源:互联网 发布:ruby精粹专家编程 pdf 编辑:程序博客网 时间:2024/04/30 10:35
同学们and朋友们大家好!今天我想说一下关于@2x二倍图的知识,以我所知所见所闻来讲述我的理解!
别看关于这么点小知识,有很多初学者在这个上面常会犯错误,以下是我的理解:
用二倍图是为了适配iphone4以上的设备(所谓的retina屏),如果你的项目要适配3gs,那么你要备两套图,一套是一倍图,比如image.png(320*480),另一套是二倍图,比如image@2x.png(640*960)。当然你在用的时候,比如UIImage *image = [UIImage imageNamed:@"image.png"],或者UIImage *image = [UIImage imageNamed:@"image"],这两种方法,在iphone4以上系统会自动去找image@2x.png图片来显示。
我不知现在用3gs的用户还有多少,以前写项目时都要适配3gs,所以就备两套图在项目中,没什么问题。
现在大部分项目都不用再适配3gs了,那么,你会怎么备图在项目中。
第一种情况:项目中只有不带@2x的图片,image.png(640*960),但是它是双倍图,然后你在项目中用时就直接[UIImage imageNamed:@"image.png"],这样会导致一些问题,当你在用系统的控件时,
比如系统导航条,我设的image.png大小是640*88双倍图,
- UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:self.viewController];
- [nav.navigationBar setBackgroundImage:[UIImage imageNamed:@"image.png"] forBarMetrics:UIBarMetricsDefault];
不管在什么设备上,大家看一下效果:
3gs和iphone4以上
iphone4以上,系统找图片时,会直接在后面加上@2x,那么这个的问题是,系统加image@2x.png找不到图片,就直接用image.png,用一倍图来做处理。(也有可能,设备找不到图片而无法显示的,这个是听说的,我没碰到过)
so,大家可以看出效果来!所以大家在用系统控件时,设置图片时考虑一下图片的问题,看你是不是也犯这个错误了。
第二种情况:项目中只有带@2x的图片,image@2x.png(640*960)图片,在项目中所有的图片后面都加上了@2x,那么你会怎么用,我猜,你会这么用:
- UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:self.viewController];
- [nav.navigationBar setBackgroundImage:[UIImage imageNamed:@"image@2x.png"] forBarMetrics:UIBarMetricsDefault];
同样是处理系统的控件,图片你这样用了[UIImage imageNamed:@"image@2x.png"],导致的情况跟上面第一种情况是一样的。
正确的用法[UIImage imageNamed:@"image.png"],即使你的图片后面跟@2x你也不要这么用,直接image.png就行了,因为系统
会帮你加上@2x。这样系统在找这张图的时候是image@2x.png在项目中能够找到,如果你直接用image@2x.png,系统会找
image@2x@2x.png这样的图片,那么在系统找不到的情况下,就直接用image@2x.png图片来当做一倍图做处理。
所以,只有双倍图的情况下,我跟周晓栋的见解是:
1、在项目中,无论代码还是 xib只用不带@2x的图片做为名字,就像这样UIImage *image = [UIImage imageNamed:@"image.png"]2、在真实文件中必须有@2x 的文件,不带@2x 的文件可有可无(如果有,可以在 xib 中更好的显示,因为xib 只认不带@2x 的图片预览)
- iphone关于单倍图和二倍图(导航 背景 变高)
- iphone关于单倍图和二倍图(导航 背景 变高)
- iphone关于单倍图和二倍图(导航 背景 变高)
- iphone关于单倍图和二倍图(导航 背景 变高)
- iphone 导航栏背景
- ios iphone6&plus 导航栏 变高
- PS制作高光导航背景
- 什么是二倍图三倍图
- iPhone或iTouch的tabbar高,导航栏高
- 关于IOS中使用一倍图与二倍图的路径用法
- 如何使控件背景变灰,高亮显示自己
- UINavigationBar自定义导航栏背景和按钮
- UINavigationBar自定义导航栏背景和按钮
- 关于图片下载后保存背景透明变黑色的问题
- 关于代码直接调用高德地图和百度地图导航功能的代码
- 什么是二倍图?什么是三倍图?
- 高清晰度的iPhone和iPod touch(单位:像素)
- 关于导航条的作法:鼠标点后背景改变
- 正则表达式的学习
- 反转链表
- 全球天气网(tianqi.com)天气预报调用插件
- 600路的鹰雁之梦
- win7下PHP运行环境搭建(apache2+mysql+php) 详细出处参考:http://www.jb51.net/os/windows/34866.html
- iphone关于单倍图和二倍图(导航 背景 变高)
- windows下node.js安装教程图文详解
- linux 二级域名设置
- 调度作业(Oracle Scheduler)
- selenium与webdriver测试弹出窗口
- 接口与抽象类的区别 原文地址:http://blog.vsharing.com/jekkon/A1604115.html
- C++Vector用法
- 关于重力感应的一个小例子
- WMS-存储过程调用示例