Guy*_*ood 4 iphone core-graphics quartz-graphics
我有一个Quartz 2D游戏直接绘制到一个上下文.出于这个原因,我不得不调整代码,以便在适合Retina显示器时进行缩放.我使用以下代码执行此操作:
- (CGFloat) displayScale
{
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
return [[UIScreen mainScreen]scale];
}
else
{
return 1.0;
}
Run Code Online (Sandbox Code Playgroud)
}
我现在正在努力的是如何在我的-drawRect:方法中操作我的Quartz上下文,以便通过返回的scale值多处理.任何人都可以帮我这个代码吗?
Bra*_*son 10
您无需更改Quartz代码中的任何内容即可考虑Retina显示.如果contentScaleFactor使用以下代码在您的UIView或CALayer上设置了正确的:
if ([view respondsToSelector:@selector(setContentScaleFactor:)])
{
view.contentScaleFactor = [[UIScreen mainScreen] scale];
}
Run Code Online (Sandbox Code Playgroud)
您在其中进行的二维绘图-drawRect:或-drawInContext:将自动渲染为Retina显示屏.请记住,您为Quartz绘图指定的坐标将以点为单位,而不是像素.对于Retina显示器,比例因子为2.0,1点= 2像素.
有关详细信息,请参阅" iOS应用程序编程指南"中的" 更新自定义绘图代码 "部分.
| 归档时间: |
|
| 查看次数: |
5025 次 |
| 最近记录: |