如何调整 Quartz 2D 上下文以适应 Retina 显示屏?

2023-11-30

我有一个 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(使用前将#替换为@)

如何调整 Quartz 2D 上下文以适应 Retina 显示屏? 的相关文章

  • 如何打开/关闭 iPhone 相机闪光灯 swift 2?

    我正在寻找如何打开 关闭 iPhone 的相机闪光灯 我发现了这个 IBAction func didTouchFlashButton sender AnyObject let avDevice AVCaptureDevice defaul
  • iOS:GMail API - 通过电子邮件发送附件

    我能够成功发送没有附件的电子邮件 但是 当我尝试使用 GTLUploadParamaters 上传附件时 出现 501 错误 我尝试添加照片库中附件的 NSData 以及仅发送图像的 URL 在这两种情况下我都得到了同样的错误 Create
  • Modal UIViewController 在 iPad 上总是全屏显示。为什么?

    我试图在 iPad 上创建一个简单的模式对话框 无论是小设置 UIModalPresentationFormSheet 还是大设置 UIModalPresentationPageSheet 但无论我做什么 它们都会全屏显示 带有标题栏 模态
  • 关闭子级后,父级 UIViewController 方向不应更改

    假设我有三个 UI 控制器 A B C A 是我的根控制器 在 ShouldAutoRotate 方法中我返回 YES 我从A到B呈现ModalView B gt 在ShouldAutoRotate方法中我返回Portrait 然后从B我向
  • iphone:使用 iOS 5 和 Xcode 4.2 提交应用程序? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个在
  • 如何使用 xcode 3.1.3 处理 iAd

    目前我正在集成 iAds 并制作该应用程序的精简版 我的问题是以前我使用的 iAds 是 xcode 4 1 3 但目前我使用的是 xcode 3 1 3 iAds 不支持我们所做的 请帮助我 NSString contentSize UI
  • iPhone - ShareKit 、 SHKm 给出“找不到文件”的编译器错误

    我在使用 ShareKit Integrated 编译我的 iphone 项目时遇到了这个问题 我正在研究这个问题 到目前为止一切都工作正常 突然现在它给了我错误 在 SHK m 文件中 import include objc objc c
  • 如何改进 iOS 中的 TWTweetComposeViewController 代码?

    我已经实现了以下代码来进行 Twitter 共享 在我的代码中 我尝试测试 iOS 5 如果这不起作用 我会回到使用 ShareKit 的 Twitter 代码进行共享的旧方式 我向同事展示了代码 他建议我的代码可能有缺陷 我需要做两件事
  • iphone:通过代码获取目标设置中的用户定义变量?

    我的项目有多个目标 每个目标都有自己的目标Class用于设置内容的文件 我想存储它Class目标设置中的名称 Info plist或目标的建筑物设置 这样我就可以根据此设置定义每个目标中需要使用哪个类 根据这个问题 https stacko
  • 如何使用 ZBar 读取器的 scanCrop 属性?

    我正在使用 iPhone 的 ZBar SDK 来扫描条形码 我希望阅读器仅扫描特定的矩形而不是整个视图 为此需要将阅读器的 scanCrop 属性设置为所需的矩形 我很难理解必须设置的矩形参数 有人可以告诉我如果在纵向视图上它的坐标是 我
  • Monotouch 和本机 iOS 代码

    是否可以将使用 monotouch 编译的 C 库与单个应用程序中的 Objective C 前端链接起来 或者该应用程序必须是全部还是全无 这是可能的 但您不会从 MonoTouch 工具获得任何帮助 并且您无法摆脱这样一个事实 您仍然需
  • 通过 iPhone 连接到 AT&T 无线网络的谷歌静态地图无法工作 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 最近 当我的 iPhone 连接到 AT T 无线网络时 我在检索静态地图时遇到了问题 但是 当我连接到本地 WiFi 时工作正常 上周日停止工作了几
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 蓝牙 4.0 与较旧的蓝牙

    我正在尝试使用蓝牙 4 0 模块实现一个应用程序 我想知道将此应用程序与包含简单蓝牙 2 1 EDR 模块的 Iphone 3GS 一起使用是否能让我利用 4 0 模块中的低功耗 谢谢您的回答 蓝牙 4 0 是标准 其中包括经典蓝牙基本速率
  • 我无法捕获 WKWebView 的屏幕截图

    我正在尝试捕获 WKWebView 的屏幕截图 但我的方法无法正常工作 它返回纯色 就好像图层树为空一样 而它似乎适用于其他视图 UIImage screenshot UIImage screenshot UIGraphicsBeginIm
  • iPhone:在命令行 (Mac OS X) 中压缩 .app 文件会删除 CodeSigning

    我正在尝试使用 TeamCity 对我的 iPhone 应用程序进行简单的构建自动化 但遇到了这个棘手的问题 当我从构建文件夹中手动拾取并安装 app 文件时 效果很好 与 iTunes 顺利同步 我可以在手机上看到该应用程序 但是 当我尝
  • 将第 3 方库添加到 iPhone 应用程序时如何设置“标题搜索路径”的路径

    我想添加第 3 方库语音转文本 https github com todoroo iPhone Speech To Textto my Xcode项目 我只是拖xcodeproj文件在我的 iPhone 项目中 然后我按照目标依赖项 将二进
  • 将子视图发送到后面

    我正在尝试模仿 facebook ios 侧面菜单并让它工作 但是我遇到的问题是我无法将侧面菜单发送到后面 正如另一个问题中所讨论的那样使用 Objective C 的 iphone facebook 侧边菜单 https stackove
  • iPhone UIViewController 中的 UIPickerView

    我有一个 xib 其中添加了一个UIViewController名为德尔塔 delta 下的视图由 delta viewcontroller 控制 而不是由文件所有者控制 在三角洲视图中 我有一个UIViewPicker 我的问题是我正在编
  • 将我的免费应用程序从 Universal 升级到仅限 iPhone

    我释放我的free app到 appStore 它的版本是 1 0 它是一个Universal app 现在我想发布 1 1 版本到 appStore 我将其升级到iPhone only appStore会拒绝我吗 我已阅读类似的问题 ht

随机推荐

  • 关于 unique_ptr 性能

    我经常读到 在大多数情况下 unique ptr 会比 share ptr 更受青睐 因为 unique ptr 是不可复制的 并且具有移动语义 由于复制和引用计数 shared ptr 会增加开销 但是当我在某些情况下测试 unique
  • Simba ODBC 连接到增量表并使用 .Net C# 从增量格式表读取数据

    我正在尝试使用 C 通过 simba odbc 驱动程序从增量格式表中读取数据 增量格式表示例 已按照中的说明下载并配置 simba odbchttps www simba com products Spark doc ODBC Insta
  • 硬件加速活动 - 如何获取 OpenGL 纹理大小限制?

    我正在尝试在 Honeycomb 中启用硬件加速 并在 Canvas 上显示一些位图 一切正常 但对于大型位图 一维 gt 2048 我在日志中收到错误 OpenGLRenderer 位图太大 无法上传到纹理中 我知道这是因为硬件限制 如果
  • JSF commandButton - 将 POST 参数传递到外部站点

    我需要一个将我重定向到不同站点并发送 POST 参数的链接 就像是
  • php文件上传问题

    这段代码在我的本地主机上运行正常 我正在使用 xampp 1 7 3 但是当我把它放入实时服务器时它显示Possible file upload attack upload 是服务器上 public html 文件夹下的文件夹 我可以通过该
  • NodeJS 数组同步?

    var membersStatArray membersArray forEach function member db doneTodo find victor id member id then arrayOfUserVictories
  • PHP、MySQL 和时区

    我正在尝试在我的应用程序中集成时区系统 到目前为止 我确实努力避免制作时区感知应用程序 但它现在是强制性要求 所以别无选择 时区这件事超出了我的想象 我已经阅读了 PHP net 和其他网站上的几个主题 包括但不限于 SO 但我始终无法掌握
  • Java - 如何从 Android 中的 azure 移动服务检索和使用单个值

    我是 azure 的新手 但我知道某些事情 例如如何检索数据并将数据存储到 azure 为此我遵循了 azure 官方文档 链接在这里 https azure microsoft com en in documentation articl
  • 如何使用 C# 读取和标记(突出显示)pdf 文件

    我有一个 pdf 文件 我正在逐页阅读该文件 现在从第 4 页开始 我的 pdf 包含帐单信息 这些帐单信息位于示例部分下 比如说一个是本地帐单信息 另一个是 STD 帐单信息等 现在根据我的要求 如果用户想要验证本地账单信息 我的代码应该
  • 在 MVC 4 中将图像附加到 ActionLink

    我在 MVC 4 应用程序中使用带有 id 的 ActionLink 并在 css 中分配 actionLink id 图像 但实际上我做错了 不管用 这是我的代码 div class logo container Html ActionL
  • 设置 NSManagedObject 上双精度属性的值

    我正在尝试在我的应用程序上实现地图功能 但是 我希望将纬度和经度从存储在核心数据中的对象传递到地图中 但是 当我启动应用程序时 我在设置对象的初始值时遇到问题 到目前为止 我已经尝试了两种不同的方法 每种方法收到的错误都是 将 double
  • 从互联网上的txt文件中获取文本

    我有一个 uwp 我需要从互联网上保存的 txt 文件中获取文本以进行字符串下载文件并将文本获取到字符串时遇到问题 这是我的代码 var webRequest WebRequest Create http yourUrl using var
  • missViewControllerAnimated自定义动画

    我试图用自定义动画调用missViewControllerAnimated 但它似乎不起作用 当我呈现视图控制器时 如下所示 cameraUI UIImagePickerController cameraUI delegate self c
  • WinSxS:如何依赖特定版本的gdiplus.dll?

    我需要添加对特定版本的 GDIPlus 的依赖项 这是我想要的 GDI 版本 我想确保我使用此版本是出于特定的兼容性原因 我已将程序集清单添加到我的可执行文件中 定义了对版本的依赖关系GdiPlus
  • Visual Studio 调试控制台有时保持打开状态并且无法关闭

    编辑 3 微软已经发布了对此问题的 修复 可用here 我还没有时间测试它 但欢迎那些想要测试的人在这里留下他们的反馈 有时 当我从 Visual Studio 运行应用程序并且它崩溃或使用调试菜单中的停止按钮 调试 gt 停止调试 Shi
  • 几天后刷新令牌已自动过期

    我们在 Google API 控制台上有 Google OAuth2 Web 客户端 在 Oauth Web 客户端的帮助下 我们为每个用户获取刷新令牌 通过使用 Web 身份验证和 Concert Screen 我们将收到的刷新令牌存储到
  • 想要 javascript 中 $bhai 的值

    bin sh echo Content type text html echo echo echo echo echo echo
  • 使用列表列表创建子报表

    我有一个目标列表 每个目标都有另一个 ArrayList 我希望使用子报表显示子 ArrayList 中的详细信息 我想要子 ArrayList 中的每个对象都有一个子报告 我面临的问题是 我似乎找不到一种方法来指定子报表的 ArrayLi
  • Git:多个项目可以使用相同的子模块工作副本吗?

    我是 Git 新手 可以说 我有两个 git 存储库 它们添加了相同的库作为子模块 home projects project1 library XYZ home projects project2 library XYZ 另外可以说 我正
  • 如何调整 Quartz 2D 上下文以适应 Retina 显示屏?

    我有一个 Quartz 2D 游戏 它直接绘制到上下文中 因此 我必须调整代码 以便它可以在适合视网膜显示屏的情况下进行缩放 我使用以下代码执行此操作 CGFloat displayScale if UIScreen mainScreen