lufei's Studio.

iOS 关于 1px 的小问题

字数统计: 469阅读时长: 1 min
2021/09/06 Share

UICollectionView 1px 缝隙问题

有时候会发现满屏幕等分 UICollectionView 的时候,一些机型会出现 1px 的缝隙,这个问题,让我很困惑。

分割线到底多高

有时候,设计图上标注的 1px 的分割线,展现出来的效果却总是差强人意,于是聪明的开发者默默改成了 0.5,效果还不错,但也还是心存困惑。

iOS 里的尺寸

困惑积压过多,不得不查查资料,希望能彻底解决这个问题。

px,pt,ppi

px:屏幕最小单位 pixel,也称为像素,像素和我们平常说的英寸厘米这些单位不同,它是没有固定大小的,一平方米的面积上可以放一千个像素也可以放一万个像素,我们只需要记住像素是个有弹性的、最小的单位就可以

pt:苹果规定的独立像素,可以理解为绝对长度,不随屏幕像素密度变化而变化,1pt 大概等于 0.16mm,这个和印刷概念中的 point 不是一个东西。

ppi:pixels per inch,即每英寸所拥有的像素数目,屏幕像素密度

正确的 1px 写法

1
let onePixel = 1 / UIScreen.main.scale

总结

关于 UICollectionView 的缝隙问题,根据前面所说,1px 就是当前屏幕下的最小单位,例如在 1px = 0.33pt 的屏幕下,如果算出来的宽度小数部分小于 0.33,那么是无法分配一个像素的,于是就出现了一个像素的缝隙。

关于分割线,因为实际开发中我们使用的单位大多是 pt,而设计师有可能使用 px,这时候,作为开发者要学会换算成正确的 pt,不然就会出现一些奇怪的偏差。

还是要多多学习啊~

CATALOG
  1. 1. UICollectionView 1px 缝隙问题
  2. 2. 分割线到底多高
  3. 3. iOS 里的尺寸
    1. 3.1. px,pt,ppi
    2. 3.2. 正确的 1px 写法
  4. 4. 总结