Calayer SetneedsDisplay Мгновенный вызов Drawlayer: Incontext - PullRequest
0 голосов
/ 03 июня 2011

У меня есть слой с именем basicLayer, и у меня есть несколько путей, которые нужно рисовать в функции drawlayer: incontext, так я назвал [basicLayer setneedsdisplay]; который вызовет drawlayer: incontext автоматически, но он не вызвал drawlayer: incontext мгновенно, поэтому мой вопрос заключается в том, как я могу мгновенно вызвать drawlayer: incontext after [basicLayer setneedsdisplay]; это поглотило меня часы сервал, пожалуйста, помогите мне?

[basicLayer setNeedsLayout];
[NSThread sleepForTimeInterval:1.0];

Мне нужно нарисовать несколько путей, а затем поспать 1 секунду.

1 Ответ

0 голосов
/ 03 июня 2011

Не делай этого!Звонить sleepForTimeInterval:, как правило, не очень хорошая идея.Особенно в главном потоке (где, я полагаю, вы находитесь), это абсолютный запрет, потому что вы таким образом блокируете весь пользовательский интерфейс.

Если вам нужно подождать секунду, сделайте что-то вроде performSelector:withObject:afterDelay (или эквивалентный звонок с Grand Central Dispatch).Звонок на setNeedsLayout в порядке.

...