Пример кода Apple Page Control дает черный экран - PullRequest
0 голосов
/ 22 апреля 2019

Я скачал образец кода Apple от Apple, чтобы попытаться научиться создавать лениво загруженные страницы во время прокрутки пользователем.Однако сразу после прокрутки изображения исчезают, и я получаю черный экран.Это должно произойти, если в коде есть ошибка.

page control black screen

1 Ответ

0 голосов
/ 22 апреля 2019

Вы редактировали код перед запуском приложения?

Мне удалось воспроизвести вашу проблему, закомментировав вызов _ = setupInitialPages в вызове метода viewDidLayoutSubviews. Без комментариев, приложение отлично работает.

enter image description here

В случае ленивых загрузочных переменных нужно помнить, что они не заполняются до тех пор, пока не будут вызваны, вот и весь смысл ленивой загрузки. Если нет ссылки на лениво загруженную переменную, она не будет создана и приведет к тому, что вы увидели в своем тесте.

Синтаксис для ленивой загруженной переменной:

lazy var someVarName: the variable type e.g. Int, UIIMage, String... whatever = { // Code in here to populate the variable return variable with the declared type }()

Вы должны убедиться, что возвращение вызова для отложенной переменной соответствует типу. Также имейте в виду, что ленивая переменная, хотя она и называется переменной, однажды заданная, не изменяется и больше похожа на константу в этом отношении. Есть некоторые обходные пути, но они уже были рассмотрены здесь ... Повторная инициализация отложенной инициализированной переменной в Swift

...