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

本文探讨了iOS系统判断像素点是否显示的依据,通过代码示例展示在不同位置和宽度设置下,线条可能显示为1px或2px的情况。这解释了未适配应用在iPhone6上线条粗细不稳定的现象,主要是由于0.5像素宽度在高分辨率屏幕上的渲染问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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

//    如果单个像素分为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。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值