探讨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。




iOS开发:分辨率像素你知多少

iPhone屏幕尺寸和分辨率方面的一些小姿势 20160303 iPhone设备现在有多种分辨率,如下表所列, 设备 屏幕尺寸 分辨率(pt) Reader 分辨率(px) ...
  • liangliang2727
  • liangliang2727
  • 2016年11月13日 01:39
  • 3441

iOS 绘制1像素线条总结

先了解下scale scale 即屏幕缩放系数,根据当前设备屏幕的大小计算的比例。下面来看下不同几款设备对应的scale 设备 Size scale 4s {320, 480} ...
  • keleyundou
  • keleyundou
  • 2015年08月17日 14:10
  • 1214

解决移动端1px线条的显示方式

本文实际上想说的是ios8下 1px解决方案。 1px的边框在devicePixelRatio = 2的retina屏下会显示成2px,在iphone 6 plug 下,更显示成3px。由其影响美感。...
  • ljmkmnkl
  • ljmkmnkl
  • 2017年03月15日 10:53
  • 815

iOS_如何画1px的线

在drawRect方法里面,默认抗锯齿是开着的,关闭即可 // 核心代码 关闭抗锯齿即可     CGContextSetAllowsAntialiasing(context,NO); ...
  • u012576807
  • u012576807
  • 2016年06月03日 10:24
  • 1343

iOS画线粗细

iOS画线粗细     CGContextRef contextLine = UIGraphicsGetCurrentContext();     CGContextSetLineWidth(c...
  • xiangnideshen
  • xiangnideshen
  • 2015年07月31日 14:31
  • 1732

iOS 画线 绘制直线、矩形、三角形

// 覆盖drawRect方法,你可以在此自定义绘画和动画 - (void)drawRect:(CGRect)rect {     //An opaque type that rep...
  • sinat_35710100
  • sinat_35710100
  • 2016年11月19日 12:05
  • 1426

iOS像素和点的转换

参考资料:http://my.oschina.net/u/1049180/blog/362599                   http://lizhuang.iteye.com/blog/1...
  • Dlg1992
  • Dlg1992
  • 2016年01月23日 20:25
  • 3526

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

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

如何在手机浏览器上实现真正的0.5像素的线

我们知道,在苹果手机的浏览器上,如果你用1px来表达宽度,那么得到的实际效果是一个很宽的很丑陋的线 去百度搜了搜,大家实现的方式多种,大都是用阴影来做的 但是阴影这东西,一是色不准,二是这玩意...
  • qiushi888
  • qiushi888
  • 2016年01月07日 12:40
  • 1711

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

//    如果单个像素分为10格,如上图,从上往下第5格被填充或从右往左第5格被填充,则该像素就会被显示,实际上系统会划分的更细,不只是10格。 //    下面是横向的测试代码,需要在2倍屏上测...
  • ddd998
  • ddd998
  • 2015年07月07日 14:23
  • 2374
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:探讨iOS某个像素点是否显示依据,以摸索为什么iOS没适配的应用在iphone6上面线的粗细会不稳定。有的线会变粗。
举报原因:
原因补充:

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