SKTexture 和 UIImage 的缩放属性

2024-02-08

是否有任何原因导致SKTexture似乎忽略了.scale构建图像时通过textureWithImage:?

我有一个可用的图像资源,“[电子邮件受保护] /cdn-cgi/l/email-protection"

当我尝试先创建 UIImage 时创建纹理时:

UIImage* image = [UIImage imageNamed:@"retina_image"];
SKTexture* texture_image = [SKTexture textureWithImage:image];
NSLog(@"image size %@, scale %f", NSStringFromCGSize(image.size), image.scale);
NSLog(@"texture from image, size %@", NSStringFromCGSize(texture_image.size));

我得到以下结果:

image size {50, 50}, scale 2.000000
texture from image, size {100, 100}

虽然我希望得到

image size {50, 50}, scale 2.000000
texture from image, size {50, 50}

由于图像的大小(以点为单位)为 50x50
这也是直接使用资源构造纹理时得到的结果:

SKTexture* texture_named = [SKTexture textureWithImageNamed:@"retina_image"];
NSLog(@"texture named, size %@", NSStringFromCGSize(texture_named.size));

给出以下输出(如预期):

texture named, size {50, 50}

这表明SKTexture在从图像构造时确定其自身大小时忽略比例属性,而在从图像名称构造时正确尊重比例。
这是预期的行为吗?

(显然,在我的真实代码中,我创建了我想以编程方式在纹理中使用的 UIImage,而不是通过 imageNamed)

编辑:这是 SpriteKit 中的一个(已确认)错误,已在 iOS8 中修复


我也发现了这个并相信这是一个错误。不确定苹果将如何纠正这个问题,因为它可能会破坏现有的代码。

我的解决方法是读取 UIImage 的比例,然后将 SKSpriteNode 的比例设置为 1.0 / 比例。您需要对 SKSpriteNode 的 x 和 y 比例执行此操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SKTexture 和 UIImage 的缩放属性 的相关文章

  • 如何使用群组在 iPhone 和 Apple Watch 之间共享数据?

    我是 Watchkit 开发新手 无法找到在 iPhone 和 iWatch 之间共享数据的解决方案 请帮助我 我希望使用组来共享数据 我们可以使用组在 iPhone 和 iWatch 之间传递数据 基本上iWatch不能做任何处理 我们需
  • 设置UITextField的光标位置

    我查看了单点触控示例并尝试过 var range new NSRange selectionStart 1 NumberTextField SelectedTextRange IndexedRange GetRange range 但这会在
  • 当表格为空时 iPhone UITableView 图像背景

    我想当我的 UITableView 为空时显示图像背景 目前 我尝试将 UIImageView 添加到包含表格的视图控制器 但 XCode 不允许这样做 有没有好的方法呢 您可以在表视图顶部添加图像视图或更改表视图的背景视图 Check i
  • 使用 NSDateFormatter 和 TimeZone(不带 GMT 时间修饰符)将 NSDate 转换为 NSString

    我正在初始化我的 NSDateFormatter NSDateFormatter dateFormatter NSDateFormatter alloc init autorelease dateFormatter setLocale NS
  • 为什么我无法更改 UIBarButtonItem 的标题?

    我想改变UIBarButtonItem s title 但这段代码不起作用 void viewDidLoad self smay void smay AppDelegate apd AppDelegate UIApplication sha
  • 如何在 Swift 中使用 deltaTime 正确计算 1 秒

    我正在尝试计算经过的秒数deltaTime但我不知道该怎么做 因为我的deltaTime不断打印 0 0166 或 0 0167 这是我的代码 override func update currentTime CFTimeInterval
  • UINavigationBar 滑开而不是留在原处

    我创建了演示项目来展示问题 我们在 UINavigationController 中有两个视图控制器 MainViewController这是根 class MainViewController UIViewController lazy
  • 使用基于 Cookie 的身份验证的 Capacitor iOS

    我正在使用 Capacitor v3 NextJS 静态导出和 Django 后端基于生产网站构建 iOS 应用程序 当前的后端身份验证方案通过 cookie 使用 Django 会话 并通过 cookie 设置 CSRF 令牌 应用程序可
  • 使用什么来移动 UIView self.frame 或 self.transform 属性?

    这个问题我有点困惑 我知道我可以改变观点self frame origin 但我发现有一个名为 变换 的属性 我认为这是用于在屏幕上移动我的视图等 也许我有点不明白 所以我想知道 我必须使用哪个房产来搬家UIView 或者它的子类 另一个类
  • 增量后清除推送通知徽章

    我正在研究 iPhone 中的推送通知 当我收到推送通知时 它在我的应用程序图标上显示 1 下次显示 2 3 4 如果我打开应用程序 它是 0 下次它应该是 1 2 3 4 但它显示最后一个数字和 1 我想在打开应用程序后重置推送通知徽章
  • 移动设备上的 TensorFlow(Android、iOS、Windows Phone)

    我目前正在寻找不同的深度学习框架 特别是用于训练和部署卷积神经网络 要求是 它可以在带有 GPU 的普通 PC 上进行训练 但训练后的模型必须部署在三个主要的移动操作系统上 即 Android iOS 和 Windows Phone Ten
  • admob ios7错误音频框架

    我正在将 admob SDK 当前的 集成到我的上一个应用程序 IOS7 Xcode5 中 并且出现了一个新错误 在新项目上也是如此 我想我错过了一些东西 但我多次重新启动该过程 但错误仍然存 在 Undefined symbols for
  • 在后台继续下载

    我正在创建一个应用程序 其中我从服务器下载一些数据 在后台运行时 我希望连接继续运行 以便可以下载数据 我知道有方法应用程序委托 void applicationDidEnterBackground UIApplication applic
  • iOS Twitter NSURLErrorDomain 代码=-1012

    我正在尝试通过在我的应用程序中注册 Twitter 来获取用户的联系方式 我发现this https github com malcommac DMTwitterOAuthgithub上的项目看起来非常好 我只遇到一个问题 如果我使用来自
  • dyld:无法加载插入的库,但可以在模拟器和另一部 iPhone 上使用

    所以我在过去的几个小时里在我的应用程序上编码 在某个时候我决定在我的 iPhone 8 13 3 1 上启动我的应用程序而不是使用模拟器 13 3 它立即崩溃并出现以下错误 dyld warning could not load inser
  • 应用程序仅启用纵向,但 UIImagePickerController 在 iOS6 中旋转

    请注意 下面的答案 不适用于 iOS6 所以我仍然需要答案 我的应用程序仅启用纵向模式 但是 如果我将 UIImagePickerController 作为子视图嵌入其中 并旋转设备 则顶部和底部栏将保持在同一位置 但 UIImagePic
  • 播放循环声音的最简单方法是什么?

    在 iPhone 应用程序中播放循环声音的最简单方法是什么 可能最简单的解决方案是使用AVA音频播放器 http developer apple com library ios DOCUMENTATION AVFoundation Refe
  • 游戏中心玩家显示名称在沙盒中始终为“我”

    我使用用户的游戏中心显示名称和玩家 ID 来维护他们在我的服务器上的个人资料 当我进行测试时 一切似乎都正确执行 但我的沙箱帐户的用户显示名称显示为 Me 而不是附加到我的帐户的显示名称 Billybobbo 这应该在沙盒模式下发生吗 Co
  • 使用自定义格式将字符串转换为 NSDate [重复]

    这个问题在这里已经有答案了 可能的重复 NSString 到 NSDate https stackoverflow com questions 1353081 nsstring to nsdate iPhone 如何将 yyyyMMddTh
  • 构建 iOS 应用程序后退出代码 1 错误

    我正在尝试使用 RestKit 构建我的项目 当我构建它时 我收到以下错误 我尝试使用 Apple LLVM 3 0 和 LLVM GCC 4 2 进行编译 两者都产生相同的结果 任何人有任何想法是什么导致了这个问题 Ld Users Ji

随机推荐

  • 更新 iOS 徽章而不推送通知

    我见过一些待办事项应用程序在午夜更新其应用程序徽章 始终显示正确的到期任务数量 他们这样做without使用推送通知 所以我的问题是 他们是如何做到这一点的 他们是否使用本地通知 如果是 当设备关闭时这些通知会被调用吗 我有点困惑 希望得到
  • Django:按元组的第一个值排序

    我有一个 7 元组 POSSIBILITIES 1 Something 2 Something else 现在我有一个IntegerField with choices在具有上面列出的可能性的模型中 class Something mode
  • 在 Spark Java 中将文本文件转换为序列格式

    在 Spark Java 中 如何将文本文件转换为序列文件 以下是我的代码 SparkConf sparkConf new SparkConf setAppName txt2seq sparkConf setMaster local set
  • size_t 和 off_t 的用法有什么区别?

    除了每种类型可以容纳的值的大小之外 还有哪些主要区别usage之间size t and off t 这只是一个惯例吗size t类型用于绝对大小和off t类型用于偏移 还是比这更深入 我正在编写一个包装类来启用使用写入大文件mmap我想知
  • Laravel Auth 用于登录和注册的外部数据

    我正在使用 Laravel 5 2 Auth 系统来执行以下命令 php artisan make auth 虽然这完全可以正常工作 但我的目标是使用外部 API 来执行登录 注册和更改密码 同时仍然能够使用 Auth 类的核心功能 以登录
  • 如何在 Vim 中查找变量的所有出现位置?

    在vim中 如何查找某个目录下的文件中所有出现的变量 我知道 vimgrep 有时可以工作 但它只查找文本 如果其他类具有同名变量并且我只想要特定类下的变量 则它不起作用 我应该怎么办 或者我应该换一个 IDE 当您已经拥有一个 IDE 时
  • SchemaFactory 不支持平台级别 8 中的 W3C XML Schema?

    使用 Android SDK 纯空 Activity 中的以下代码会失败 Override protected void onStart super onStart SchemaFactory schemaFactory SchemaFac
  • 读取文本文件直至某个字符

    这是我的困境 我有一个文件 希望读入所有字符 直到程序遇到 为止 并忽略 之后该行上的所有内容 例如 0 4001232 0 评论 丢弃 这很令人沮丧 因为感觉有一个非常简单的解决方案 谢谢 FILE f fopen file txt r
  • 导入适用于 Python 2.7 但不适用于 Python 3.4 的模块

    我之前一直在 Python 2 7 中使用 PyCharm 并且能够导入模块sklearn 它是通过安装的sudo apt get install python sklearn 不过 我现在已更改 PyCharm 中的设置以使用 Pytho
  • 为什么这个 SQL 脚本会这样工作?

    我正在从 SQL Server 2005 的表中提取电子邮件地址记录 并希望构建一个字符串用作 recipients列出与sp send dbmail 该表有一个名为 EmailAddress 的字段 表中有 10 条记录 我正在这样做 D
  • Android Studio 无法识别源文件夹

    我使用标准 Android Studio 目录结构 并创建了不同的构建类型 buildTypes debug runProguard false packageNameSuffix debug signingConfig signingCo
  • 为什么我不能通过 DLL/C-Connect 将 UninterpretedBytes 传递给 void*?

    我想将 UnterpretedBytes 传递给外部库 这样说 MyLibrary gt gt foo buf len len
  • 如何在 R 中的主热图旁边添加额外的单列热图

    我有以下脚本 library gplots mydata lt mtcars mydata nr lt nrow mydata mydata newval lt data frame row names rownames mydata ne
  • 使用 CSVhelper C# 合并具有不同标头的 CSV 文件

    尝试使用 CSVhelper 将目录中的多个 csv 文件合并为一个 csv 文件时 目录中有 50 个 csv 文件 在这 50 个文件中有两组文件结构 一组有 7 列 一组有 6 列 每个文件都有完全相同的前 5 个标题 但是根据文件的
  • laravel 资源控制器/路线和模型

    所以如果你做类似的事情 artisan make model TurboClown artisan make controller TurboClownController r model TurboClown 所以此时可以添加如下内容 R
  • 如何将两个分数相加?

    在 C 中如何添加两个分数 如下所示 11 6 3 4 31 12 然后你会如何简化答案 周五晚上 无聊袭来 导致 Fraction 类的运算符超载 无法保证设计的严谨性 它的工作原理是这样的 Fraction left 1 2 Fract
  • 我如何在 UiButton 操作中传递任何类型的参数?

    我想通过按钮操作传递一个 url 因为我有 10 个按钮 它们是通过代码动态创建的 单击后会为每个相应的按钮分配一个特定的 url 这是我的代码 NSString linkUrl NSString stringWithFormat Allr
  • SWI-Prolog - 单元测试库 plunit - 如何使用 forall 选项?

    对于我的词法分析器 分词器 https en wikipedia org wiki Lexical analysis Tokenization 全部ASCII https en wikipedia org wiki ASCII 7 bit
  • 将多个原型单元加载到 UITableView 中

    我目前有一个 UITableView 其中包含 2 行自定义单元格 我最近在故事板中添加了第二个原型单元 并尝试将其添加到 UITableView 中 但没有成功 我的 cellForRowAtIndexPAth 方法如下 func tab
  • SKTexture 和 UIImage 的缩放属性

    是否有任何原因导致SKTexture似乎忽略了 scale构建图像时通过textureWithImage 我有一个可用的图像资源 电子邮件受保护 cdn cgi l email protection 当我尝试先创建 UIImage 时创建纹