Как дать переменной определенное значение после вызова draw ()? - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь объявить константу, значение которой должно рассчитываться с использованием свойства frame, равного UIView. Конечно, я не могу получить доступ к этому свойству при объявлении константы вне draw(), и я пытаюсь найти обходной путь.

Я читал о ленивых переменных, но я не уверен, что это лучший вариант. Кроме того, ленивые переменные не могут быть константами.

Должен ли я просто изменить свою константу на lazy var или есть другой способ?

1 Ответ

0 голосов
/ 19 июня 2019

Если у вас есть что-то, вычисленное из фрейма, то это по определению не является константой, так как 1) фрейм имеет действительное значение только после прохода макета и 2) фрейм может фактически меняться в зависимости от ориентации устройства, многозадачность,и контекст, в котором представлено представление.Вы должны использовать необязательную переменную или переменную со значением по умолчанию для случая, в котором кадр еще не установлен, в зависимости от того, что более подходит для вашего случая использования.Вы можете использовать lazy, если можете гарантировать, что никто не будет вызывать это свойство до тех пор, пока не произойдет разметка.

...