Когда 'drawRect' называют?

У меня есть некоторый пользовательский код для прорисовки в drawRect который также выполняет некоторое вычисление размеров.

То, когда я являюсь самым ранним, может быть уверено, что этот код был загружен, например, если я хочу изменить, это - размер контейнеров соответственно?

9
задан Peter Hosey 15 March 2010 в 23:07
поделиться

4 ответа

У меня есть специальный код рисования в drawRect, который также выполняет некоторые вычисления размеров.

Когда наступит самый ранний срок, я могу быть уверен, что этот код был загружен, например если я хочу соответственно изменить размер контейнера?

Объект не может существовать, пока его класс не будет полностью загружен. Если у вас есть экземпляр, класс, экземпляром которого он является, полностью загружен, потому что у вас не было бы его экземпляра, если бы его не было.

Что касается того, когда он называется: он вызывается, когда вам нужно нарисовать. Обычно это происходит как часть цикла событий, если что-то пометило представление как требующее отображения. Можно напрямую указать NSView для отображения, но, насколько я могу судить, это невозможно для UIViews.

Итак, если вам нужно что-то сделать с ним до того, как он получит указание, сделайте это сразу после его создания или, если вы собираетесь настроить представление как требующее отображения, сделайте это до того, как это сделаете.

2
ответ дан 4 December 2019 в 23:39
поделиться

- [NSView viewWillDraw] - подходящее место для макета в последнюю минуту.

3
ответ дан 4 December 2019 в 23:39
поделиться

Непосредственно перед отображением представления или при вызове

[aView setNeedsDisplay];
1
ответ дан 4 December 2019 в 23:39
поделиться

Я только что создал свое первое приложение CustomView. Это был один из моих вопросов. мой метод drawRect был вызван один раз при создании моего окна (или воссоздании). И миллионы раз при изменении размера моего окна.

0
ответ дан 4 December 2019 в 23:39
поделиться