Mac/iosUI模糊的分析

​ 从事Mac、ios开发的小伙伴在刚开始入手的时候,可能都遇到过文本UI或者image显示模糊的情况。最简单的原因是它们被绘制在了浮点数的坐标上,导致像素显示模糊。那么为什么绘制在浮点数的坐标上就会显示模糊呢?

​ 首先要知道像素,像素是影像显示的基本单位,用Pixel表示。每个像素不是一个点或者一个方块,而是一个抽象的取样,只是在很多情况下,它们采用点或者方块显示。图片是一个个取样点的集合。

​ 以mac为例,绘图系统使用的尺寸单位为Point,而我们的屏幕显示单位是像素。对于绘图本身,并不需要关心如何在屏幕上显示,(显示属于硬件细节),系统根据当前屏幕的情况自动将Point转成像素,所以不管在什么样的屏幕上显示,就是系统的问题了,使用Point绘图以不变应万变。

​ exp:

  • 非 Retina:1 Point = 1 x 1 Pixel

  • Retina:1 Point = 2 x 2 Pixel

    所以浮点数的Point对应的是一些不完整的取样点的集合,导致UI显示模糊,这是内部原因。那又有哪些外部原因导致UI显示模糊呢?

​ 系统通过一个变量来表示上边例子中的映射关系,这就是NSScreen中backingScaleFactor属性的作用,例如Retina屏幕,backingScaleFactor的值是2。

​ 在Mac中,想到视图一定是NSView及其子类,NSView本身并不负责显示,从NSView和NSResponder继承中可以看出,NSView的主要任务是响应触摸实践,NSView通过组合,将责任

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值