探讨iOS某个像素点是否显示依据,以摸索为什么iOS没适配的应用在iphone6上面线的粗细会不稳定。有的线会变粗。

原创 2015年07月07日 14:23:54



先说一下系统对某个像素点是否显示的依据:

//    如果单个像素分为10格,如上图,从上往下第5格被填充或从右往左第5格被填充,则该像素就会被显示;实际上系统会划分的更细,不只是10格。

//    下面是横向的测试代码,需要在2倍屏上测试。

    UIView *line = [[UIViewalloc]initWithFrame:CGRectMake(0,10,320,0.25)];//显示

    line.backgroundColor = [UIColorredColor];

    [_baseContentaddSubview:line];

    

    line = [[UIViewalloc]initWithFrame:CGRectMake(0,12,320,0.2)];//不会显示

    line.backgroundColor = [UIColorblueColor];

    [_baseContentaddSubview:line];

    

    line = [[UIViewalloc]initWithFrame:CGRectMake(0,14.25,320,0.05)];//不会显示

    line.backgroundColor = [UIColorblackColor];

    [_baseContentaddSubview:line];

    

    line = [[UIViewalloc]initWithFrame:CGRectMake(0,16.2,320,0.05)];//显示

    line.backgroundColor = [UIColorgreenColor];

    [_baseContentaddSubview:line];

    

//    下面是纵向的测试代码

    line = [[UIViewalloc]initWithFrame:CGRectMake(10,0,0.255,300)];//显示

    line.backgroundColor = [UIColorredColor];

    [_baseContentaddSubview:line];

    

    line = [[UIViewalloc]initWithFrame:CGRectMake(12,0,0.25,300)];//不会显示

    line.backgroundColor = [UIColorblueColor];

    [_baseContentaddSubview:line];

    

    line = [[UIViewalloc]initWithFrame:CGRectMake(14.25,0,0.05,300)];//显示

    line.backgroundColor = [UIColorblackColor];

    [_baseContentaddSubview:line];

    

    line = [[UIViewalloc]initWithFrame:CGRectMake(16.2,0,0.05,300)];//不会显示

    line.backgroundColor = [UIColorgreenColor];

    [_baseContentaddSubview:line];


总结:当设置的线如果是1px的时候无论起点在哪里,都只会显示1px的线。

但是如果线超过了1px,比如说1.2px。那么起点的位置就有可能导致线变成2px。

//     下面是测试代码,宽度设置相同,上面是1px,下面是2px。也是在2倍屏上

    line = [[UIViewalloc]initWithFrame:CGRectMake(18,0,0.6,300)];//1px

    line.backgroundColor = [UIColoryellowColor];

    [_baseContentaddSubview:line];

    

    line = [[UIViewalloc]initWithFrame:CGRectMake(22.2,0,0.6,300)];//2px

    line.backgroundColor = [UIColoryellowColor];

    [_baseContentaddSubview:line];

明白了这个道理,就不难理解为什么没适配的应用在iphone6上面线有可能会变粗。因为0.5个点宽的线在iphone6上面线宽像素会变成1.几px。有时候就有可能显示成2px。




相关文章推荐

Webapp中1px边框在retina屏中变粗的问题

最近在做一个webapp, 给边框设置了1px的大小, 结果同时在1080P的手机中打开并截图后用PS无限放大, 发现边框并不是1px大小, 而是变成了3px的大小. 其实这是因为手机的dpr在作祟...

再谈mobile web retina 下 1px 边框解决方案

本文实际上想说的是ios8下 1px解决方案。 1px的边框在devicePixelRatio = 2的retina屏下会显示成2px,在iphone 6 plug 下,更显示成3px。由其影响美感。...

探讨iOS某个像素点是否显示依据,以摸索为什么iOS没适配的应用在iphone6上面线的粗细会不稳定。有的线会变粗

探讨iOS某个像素点是否显示依据,以摸索为什么iOS没适配的应用在iphone6上面线的粗细会不稳定。有的线会变粗...

iOS画线粗细

iOS画线粗细     CGContextRef contextLine = UIGraphicsGetCurrentContext();     CGContextSetLineWidth(c...

iOS: 如何正确的绘制1像素的线

一、Point Vs Pixel iOS中当我们使用Quartz,UIKit,CoreAnimation等框架时,所有的坐标系统采用Point来衡量。系统在实际渲染到设置时会帮助我们处理Point到P...
  • hherima
  • hherima
  • 2015年06月29日 10:30
  • 2392

为应用做iOS8,iPhone6以及6plus的适配

ios软件开发过程中很重要的一点是对系统和屏幕进行适配对系统的适配主要是IOS7以后和之前以及IOS8新增特性,屏幕适配主要是对不同设备采用不同的布局以最佳展示效果展现给用户。 针对系统的适配:...
  • ffblog
  • ffblog
  • 2015年01月21日 10:02
  • 1343

IOS应用在iPhone5和iPhone5s上不能全屏显示,应用画面上下各有1条黑色的解决方案

最近在发布应用的时候被苹果拒绝了,原因是我的应用在iPhone5上没有铺满屏幕显示画面,而是在应用画面的上下各有一条黑色,导致应用画面没有铺满iPhone5的屏幕。...

IOS应用在iPhone5和iPhone5s上不能全屏显示,应用画面上下各有1条黑色的解决方案

在编写IOS应用程序的过程中,我一直都是使用iPhone Retina(3.5-inch)模拟器测试的,一切显示正常,切图如下: 我在应用开发中,采用的是纯代码实现。公司提供了一...

App适配iPhone 6/ Plus和iOS 8:10条小秘诀

你可能会想 “我在iPhone 6 Plus上把我的App遛了一遍,看起来没啥问题” 。没错,你的App跑起来应该和原来一样,但这并不意味着你可以就此收手! 让现有的App在 放大显示模式(Sc...

App适配iPhone 6/ Plus和iOS 8:10条小秘诀

(原文:raywenderlich 作者:Jack Wu 译者:@TurtleFromMars) 过节啦!为庆祝佳节,看看我给这篇文章写的这段极客小诗吧: “Keynote前夜,无人知晓,新A...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:探讨iOS某个像素点是否显示依据,以摸索为什么iOS没适配的应用在iphone6上面线的粗细会不稳定。有的线会变粗。
举报原因:
原因补充:

(最多只允许输入30个字)