SpriteKit:为什么SKView在一个高度消失但出现在另一个高度? SKView的最大高度是多少?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpriteKit:为什么SKView在一个高度消失但出现在另一个高度? SKView的最大高度是多少?相关的知识,希望对你有一定的参考价值。
下面的代码显示了SKView
,直到您将skHeight
更改为2050或更高的值(如5000)。
1)你怎么能使SKView
出现在2050或5000的高度?
2)SKViews
的最大尺寸是多少?
重现:
1)运行以下代码。您将看到SKView
表示为灰色窗口。
2)将skHeight
更改为2050或5000. SKView
不再出现。
class TestViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Create SKView
let skHeight = CGFloat(2050)
let skFrame = CGRect(x: 0, y: 0, width: 100, height: skHeight)
let skView = SKView(frame: skFrame)
skView.backgroundColor = UIColor.red
// Add test view to <scrollView>
view.addSubview(skView)
}
}
答案
在许多设备上,OpenGL渲染不支持大于4096x4096的画布大小,您的视图为2050x2050,因此当您考虑视网膜模式时,它实际上变为4100x4100。
现在@ 3x设备更加疯狂,因为它需要处理硬件缩放和缩小,因此您最终只能获得大约1501x1501的视图。
Metal没有这个问题,从ios 12开始,OpenGL已被弃用,所以希望模拟器也能使用Metal。 (因为Mojave只支持金属设备)
以上是关于SpriteKit:为什么SKView在一个高度消失但出现在另一个高度? SKView的最大高度是多少?的主要内容,如果未能解决你的问题,请参考以下文章
带有 Skview 的 ViewController - SpriteKit SKScene
SpriteKit - SKScene 边界不等于 SKView 边界