iphone - 在视网膜显示器上使用实际像素绘图

标签 iphone ios xcode coordinates retina-display

我需要做些什么来在 Retina 显示器上绘制一些形状,定义实际的屏幕像素。 我的意思是我需要所有的线都是 1 像素宽,并且没有抗锯齿。而且,如果我编写代码:

CGContextMoveToPoint(context,0,0);
CGContextAddLineToPoint(context,0,959);

然后在显示器上将显示从最左上角的像素到最左下角的线,包括它。

如果我理解得很好,我需要使用 CGContextScaleCTM。但是坐标并不总是有相同的规律性。 有时 Y 轴有偏移,有时没有。我曾尝试编写一些宏来转换坐标,但完全搞糊涂了。 我知道,有逻辑点和自动定位的东西。但这就是我需要手动绘制所有像素的原因,因为我正在开发一些 实用程序。

最佳答案

试试这个:

CGContextMoveToPoint(context, 0.5, 0);
CGContextAddLineToPoint(context, 0.5, 959);

原因:一条 1.0 像素宽的线将以您提供的坐标为中心。所以如果你从 (0, 0) 开始,一半的线将在 -1 到 0 的列中,一半的线将在 0 到 1 的列中。整数坐标给你像素的角,这对于光栅图像之类的东西很有用。

关于iphone - 在视网膜显示器上使用实际像素绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8160992/

相关文章:

ios - iOS-AWS Mobile Hub使用开发人员身份验证提供程序登录

iphone - 从 super View 中删除所有实例

xcode - 在 Travis 上使静态分析失败导致构建失败

mysql - 使用 GET 方法将整数发送到服务器

iphone - 什么更快 : Creating a gradient programmatically using Quartz2D or just importing an image?

iphone - 禁用快速查看

ios - 在 iOS 中做一个搓屏手势?

ios - 我可以复制一个 .db 文件到我的项目的根目录,然后插入或删除它的数据吗?

ios - 如何在 x 个移动注释之间画线?

ios - *AppName* 没有 iPhone 5 可以执行的架构