我有一个 Quartz 2D 游戏,它直接绘制到上下文中。因此,我必须调整代码,以便它可以在适合视网膜显示屏的情况下进行缩放。我使用以下代码执行此操作:
- (CGFloat) displayScale
{
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
return [[UIScreen mainScreen]scale];
}
else
{
return 1.0;
}
}
我现在正在努力解决的是如何在我的应用程序中操纵我的 Quartz 上下文-drawRect:
方法乘以返回的值scale
价值。谁能帮我处理这段代码吗?
您无需更改 Quartz 代码中的任何内容即可适应 Retina 显示屏。如果正确的话contentScaleFactor
使用如下代码在 UIView 或 CALayer 上设置:
if ([view respondsToSelector:@selector(setContentScaleFactor:)])
{
view.contentScaleFactor = [[UIScreen mainScreen] scale];
}
您在其中绘制的二维绘图-drawRect:
or -drawInContext:
将自动为 Retina 显示屏清晰渲染。请记住,您为 Quartz 绘图指定的坐标将以点为单位,而不是像素。对于 Retina 显示屏,比例因子为 2.0,1 点 = 2 像素。
参见“更新您的自定义绘图代码iOS 应用程序编程指南中的“部分了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)