SpriteKit: почему SKView исчезает на одной высоте, но появляется на другой высоте? Какая максимальная высота для SKView? - PullRequest
0 голосов
/ 31 августа 2018

Приведенный ниже код показывает 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 голосов
/ 04 сентября 2018

Рендеринг OpenGL не поддерживает размеры холста, превышающие 4096x4096, на многих устройствах, ваш вид - 2050x2050, поэтому, когда вы включаете режим Retina, он действительно становится 4100x4100.

Теперь устройства @ 3x еще более сумасшедшие, потому что они должны справляться с аппаратным масштабированием и сокращением, так что в итоге вы получите только изображения около 1501x1501.

У Metal нет этой проблемы, и начиная с iOS 12, OpenGL устарела, так что, надеюсь, симуляторы также будут использовать Metal. (Так как Мохаве поддерживает только металлические устройства)

...