SpriteKit:为什么SKView在一个高度上消失而在另一个高度上出现? SKView的最大高度是多少?

时间:2018-08-31 04:19:36

标签: ios uiview sprite-kit skscene 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)
    }
}

1 个答案:

答案 0 :(得分:1)

在许多设备上,OpenGL渲染不支持大于4096x4096的画布大小,您的视图为2050x2050,因此,在视网膜模式下,它的大小实际上为4100x4100。

@ 3x设备现在变得更加疯狂,因为它需要处理硬件的缩放和缩小,因此最终只能获得约1501x1501的视图。

金属没有此问题,从iOS 12开始,不推荐使用OpenGL,因此希望模拟器也将使用金属。 (这应该是因为Mojave仅支持金属设备)