macos - 首次调用 presentScene 时不遵守 SKScene scaleMode
问题描述
我在 SpriteKit 中以编程方式创建 SKView 和 SKScene:
CGRect rect;
rect.origin.x = 0;
rect.origin.y = 0;
rect.size.width = 100;
rect.size.height = 200;
SKView* view = [[SKView alloc] initWithFrame:rect];
view.showsFPS = true;
view.showsNodeCount = true;
view.showsDrawCount = true;
CGSize size;
size.width = 100;
size.height = 100;
SKScene* scene = [[SKScene alloc] initWithSize:size];
scene.scaleMode = SKSceneScaleModeAspectFit;
[view presentScene:scene];
第一次显示视图时,我得到了一个不正确缩放的场景:
但是,如果我稍微调整或移动视图,它会正确缩放:
我究竟做错了什么?
编辑:这只发生在 MaxOS(SKView 继承自 NSView)上,而不发生在 iOS 上(SKView 继承自 UIView)。
解决方案
我发现还有另一个 MacOS 特定的窗口大小调整正在进行,它没有将调整大小的通知发送到视图。这是我正在使用的框架(JUCE)中的问题,而不是 SpriteKit 中的问题。
推荐阅读
- ios - 领域迁移问题。如何更新应该在其中的数据
- javascript - Array.includes() 在数组中查找对象
- python - 使用 Django/Python 创建初学者应用程序:ModuleNotFoundError: No module named 'pages'
- javascript - react-native - 图像未在 Android 上呈现
- linux - Ubuntu 16.04 上的 ng 服务问题
- for-loop - 我的 for of 循环在 1 次迭代后一直停止
- tensorflow - 可视化卷积层的权重
- python - 摆脱 Pandas DF 上的电话号码扩展
- delphi - 如何设置 TControl 的比例?
- python - 给定一个整数,它的 varint 编码有多大?